Zusammenfassung
Entfernt Teile von Multipatch-Features in einer Ziel-Feature-Class, die sich mit umschlossenen Volumen der Multipatch-Features in der Feature-Class der Subtraktion überlappen.
Abbildung
Verwendung
-
Für diese Analyse ist eine geschlossene Multipatch-Geometrie erforderlich. Mit dem Werkzeug Ist geschlossen 3D kann ermittelt werden, ob eine Multipatch-Feature-Class geschlossene Features enthält, und mit dem Werkzeug Multipatch einschließen können Lücken in Multipatch-Features ausgeschlossen werden.
Eingabe-Features, die vollständig von einem Subtraktions-Feature umschlossen sind, werden vollständig aus der Ausgabe entfernt.
Die Ausführung dieses Werkzeugs kann viel Zeit in Anspruch nehmen, und die Eingabe-Datasets sollten sorgfältig ausgewählt werden.
Die Ausgabe-Features verfügen über keinerlei Attribute der Eingabe-Features. Bei Bedarf können Sie eine räumliche Verbindung zu den Quellen-Features oder eine Beziehungsklasse zur optionalen Ausgabetabelle erstellen, um Attribute der Eingabe-Features dem Ausgabe-Dataset zuzuordnen.
Dieses Werkzeug ist ein 3D-Gruppenoperator, der analytische Funktionen für 3D-Features bereitstellt. Weitere Informationen zu Gruppenoperatoren und ihrer Verwendung finden Sie unter Arbeiten mit 3D-Gruppenoperatoren.
Syntax
Difference3D(in_features_minuend, in_features_subtrahend, out_feature_class, {out_table})
Parameter | Erklärung | Datentyp |
in_features_minuend | Die Multipatch-Features, deren Features von den Subtrahend-Features abgezogen werden. | Feature Layer |
in_features_subtrahend | Die Multipatch-Features, die von der Eingabe subtrahiert werden. | Feature Layer |
out_feature_class | Die Ausgabe-Multipatch-Feature-Class, die die resultierenden Features enthält. | Feature Class |
out_table (optional) | Eine optionale Tabelle mit Informationen zur Beziehung zwischen den Eingabe-Features und der ausgegebenen Differenz. Diese Tabelle enthält die folgenden Felder:
| Table |
Codebeispiel
Difference3D – Beispiel 1 (Python-Fenster)
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
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')
Difference3D – Beispiel 2 (eigenständiges Skript)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
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)
Umgebungen
Lizenzinformationen
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst