3D-Linie mit Multipatch verschneiden (3D Analyst)
Zusammenfassung
Berechnet einen geometrischen Schnittpunkt der Eingabe-Linien- und -Multipatch-Features und gibt die Anzahl der Schnittpunkte zurück. Punkte (Schnittpunkte) und/oder Linien (das Ergebnis aus Eingabelinien, die an Schnittpunkten unterbrochen werden) können optional in die Ausgabe-Feature-Classes aufgenommen werden.
Weitere Informationen zur Funktionsweise von "3D-Linie mit Multipatch verschneiden" (3D Analyst)
Abbildung

Verwendung
-
Als Eingabe sind eine Multipatch-Feature-Class und eine 3D-Line-Feature-Class erforderlich.
Mit dem Werkzeug wird der Schnittpunkt zwischen jeder ausgewählten Linie (oder allen Linien, wenn keine ausgewählt sind) in der Eingabe-Line-Feature-Class und jedem ausgewählten Multipatch (oder allen Multipatches, wenn keine ausgewählt sind) in der Eingabe-Multipatch-Feature-Class ermittelt.
-
Attributwerte aus den Eingabe-Linien-Features können in der optionalen Ausgabe-Line-Feature-Class übernommen werden.
Das Werkzeug generiert auch eine numerische Ausgabe (Ganzzahl), die die Anzahl der gefundenen Schnittpunkte enthält, auch wenn keine Ausgabe-Feature-Class angegeben wird.
Eine, keine oder beide der Ausgabe-Feature-Classes können angegeben werden (d. h. Point- und/oder Line-Feature-Class oder keine von beiden). Es wird nur dann keine verwendet, wenn ein Modell oder Skript und die Ausgabe-Schnittpunktanzahl verwendet werden.
Multipatches müssen nicht geschlossen sein.
Die Ausgabe-Features weisen dreidimensionale Geometrie auf.
-
Die folgenden Felder sind in der optionalen Ausgabe-Point-Feature-Class enthalten:
- OID: OBJECTID des Punktes.
- Shape: Geometrie des Punktes.
- LINE_OID: OBJECTID der ursprünglichen Linie, an der der Schnittpunkt gefunden wurde.
- MPATCH_OID: OBJECTID des Multipatches, das sich an dieser Position mit der Linie überschneidet.
- DIST_3D: Der 3D-Abstand an der ursprünglichen Linie, an dem sich der Schnittpunkt befindet.
-
Die folgenden Felder sind in der optionalen Ausgabe-Line-Feature-Class enthalten:
- OID: OBJECTID des Punktes.
- Shape: Geometrie der Linie.
- LINE_OID: OBJECTID der ursprünglichen Linie, an der der Schnittpunkt gefunden wurde und von der diese neue Linie erzeugt wurde.
- FROM_MP_ID: OBJECTID des Multipatches, das sich mit der ursprünglichen Linie am Anfang dieser neuen Linie überschneidet (-1, wenn kein Multipatch vorhanden ist).
- TO_MP_ID: OBJECTID des Multipatches, das sich mit der ursprünglichen Linie am Ende dieser neuen Linie überschneidet (-1, wenn kein Multipatch vorhanden ist).
- DIST_3D: Der 3D-Abstand an der ursprünglichen Linie, an dem sich ein Schnittpunkt befindet, und der den Anfang dieser neuen Linie darstellt.
- LENGTH_3D: Die 3D-Länge dieser neuen Linie.
"3D-Linie mit Multipatch verschneiden" ist ein 3D-Gruppenoperator im Toolset "3D-Features". Weitere Informationen zu Gruppenoperatoren und ihrer Verwendung finden Sie unter Arbeiten mit 3D-Gruppenoperatoren.
Syntax
| Parameter | Erläuterung | Datentyp |
in_line_features |
Die Eingabe-Line-Feature-Class oder der Eingabe-Linien-Layer. | Feature Layer |
in_multipatch_features |
Die Eingabe-Multipatch-Feature-Class oder der -Layer. | Feature Layer |
join_attributes (optional) |
Lässt zu, dass alle nicht erforderlichen Felder (anders ausgedrückt, Felder, bei denen es sich nicht um ObjectID- oder Geometriefelder handelt) und Werte aus der Eingabe-Line-Feature-Class in die optionale Ausgabe-Line-Feature-Class kopiert werden.
| String |
out_point_feature_class (optional) |
Die optionale Feature-Class, in die Schnittpunkte eingefügt werden. | Feature Class |
out_line_feature_class (optional) |
Die optionale Feature-Class, in die Linien (Eingabelinien, die an Schnittpunkten unterbrochen werden) eingefügt werden. | Feature Class |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion 3D-Linie mit Multipatch verschneiden im unmittelbaren Modus verwenden.
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Intersect3DLineWithMultiPatch_3d('inLine.shp', 'inMultipatch.shp',
'IDS_ONLY', 'outPts.shp', 'outLine.shp')
Das folgende Python-Skript veranschaulicht, wie Sie die Funktion 3D-Linie mit Multipatch verschneiden in einem eigenständigen Skript verwenden.
'''****************************************************************************
Name: Intersect3DLineWithMultiPatch Example
Description: This script demonstrates how to
use the Intersect3DLine 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
inLineFC = 'sample.gdb/lines_3d'
inMP = 'sample.gdb/test_MP'
# Ensure a unique name is produced for output files
outPoint = arcpy.CreateUniqueName('OutPt_3DIntersect', 'sample.gdb')
outLine = arcpy.CreateUniqueName('OutLine_3DIntersect', 'sample.gdb')
# Execute Intersect 3D Line with Multipatch
arcpy.Intersect3DLineWithMultiPatch_3d(inLineFC, inMP, 'IDS_ONLY',
outPoint, outLine)
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)