Différence 3D (3D Analyst)
Récapitulatif
Calcule l'intersection géométrique de deux volumes définis par des entités multipatch fermées, en fonction de l'intersection géométrique de leurs faces. Soustrait d'une classe d'entités tous les volumes d'une autre et écrit le résultat dans une nouvelle classe d'entités en sortie.
Pour en savoir plus sur le fonctionnement de l'outil Différence 3D
Utilisation
-
La classe ou couche d'entités en entrée doit avoir une géométrie multipatch.
-
Seuls les multipatches fermés sont traités. Les autres multipatches sont ignorés et une erreur est consignée dans le journal de géotraitement. Utilisez l'outil de géotraitement Fermeture 3D pour vérifier si toutes les entités sont fermées.
La classe d'entités en sortie ne possède aucun des attributs de la classe d'entités en entrée. Vous pouvez si nécessaire utiliser la jointure spatiale afin de reconnecter les attributs des entités en entrée initiales.
L'outil Différence 3D est un opérateur 3D qui fait partie du jeu d'outils Entités 3D. Pour plus d'informations sur les opérateurs de jeu à utiliser et sur la manière de les utiliser, reportez-vous à la rubrique Utilisation d'opérateurs de jeu 3D.
Syntaxe
Paramètre | Explication | Type de données |
in_features_minuend |
Collecte des entités multipatch desquelles sont supprimées les entités multipatch diminuteurs. | Feature Layer |
in_features_subtrahend |
Collecte des entités multipatch qui sont soustraites des entités multipatch diminuendes. | Feature Layer |
out_feature_class |
Classe d'entités multipatch dans laquelle sont placés les multipatches nouvellement générés. | Feature Class |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction Différence 3D en mode immédiat.
import arcpy from arcpy import env arcpy.CheckOutExtension('3D') env.workspace = 'C:/data' arcpy.Difference3D_3d('input_mp.shp', 'erase_mp.shp', 'difference_mp.shp')
Le script Python ci-dessous illustre l'utilisation de la fonction Différence 3D dans un script autonome.
'''**************************************************************************** Name: Difference3D Example Description: This script demonstrates how to create shadow volumes that fall along a specified surface using the Difference3D tool. ****************************************************************************''' # Import system modules import arcpy import exceptions, sys, traceback from arcpy import env try: # Obtain a license for the ArcGIS 3D Analyst extension arcpy.CheckOutExtension('3D') # Set environment settings env.workspace = 'C:/data' # Set Local Variables inMP = 'buildings.shp' eraseMP = 'bldg_extensions.shp' outMP = arcpy.CreateUniqueName('bldgs_without_extensions.shp') # Execute Difference3D arcpy.Difference3D_3d(inMP, eraseMP, outMP) except arcpy.ExecuteError: print arcpy.GetMessages() except: # Get the traceback object tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] # Concatenate error information into message string pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\ .format(tbinfo, str(sys.exc_info()[1])) msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2)) # Return python error messages for script tool or Python Window arcpy.AddError(pymsg) arcpy.AddError(msgs)