Résumé
Permet d'éliminer des portions d'entités multipatch dans une classe d'entités cible, en cas de superposition avec des volumes clos d'entités multipatch dans la classe d'entités de soustraction.
Illustration
Utilisation
-
La géométrie multipatch fermée est requise pour cette analyse. L'outil Fermeture 3D permet de déterminer si une classe d'entités multipatch contient des entités fermées et l'outil Inclure un multipatch permet d'éliminer des intervalles dans les entités multipatchs.
Les entités en entrée totalement entourées par une entité de soustraction sont complètement supprimées en sortie.
L'exécution de cet outil peut prendre beaucoup de temps. Veillez à sélectionner les jeux de données en entrée appropriés.
Les entités en sortie ne possèdent aucun des attributs des entités en entrée. Si besoin est, une jointure spatiale vers les entités source ou une classe de relations vers la table en sortie facultative peut être construite pour établir un mappage des attributs, des entités en entrée au jeu de données en sortie.
Cet outil est un opérateur 3D qui fournit des fonctions analytiques sur les 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
Difference3D_3d (in_features_minuend, in_features_subtrahend, out_feature_class, {out_table})
Paramètre | Explication | Type de données |
in_features_minuend | Entités multipatch dont les entités sont supprimées par les entités du diminuteur. | Feature Layer |
in_features_subtrahend | Entités multipatch soustraites de l'entrée. | Feature Layer |
out_feature_class | Classe d'entités multipatch en sortie qui contient les entités obtenues. | Feature Class |
out_table (Facultatif) | Table facultative qui stocke les informations sur les relations entre les entités en entrée et la sortie de différence. Les champs suivants sont présents dans cette table :
| Table |
Exemple de code
1er exemple d'utilisation de l'outil Difference3D (fenêtre Python)
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.
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')
2e exemple d'utilisation de l'outil Difference3D (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python 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)
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert 3D Analyst
- ArcGIS Desktop Standard: Requiert 3D Analyst
- ArcGIS Desktop Advanced: Requiert 3D Analyst