Zusammenfassung
Gibt die Anzahl der geometrischen Schnittpunkte zwischen 3D-Linien- und -Multipatch-Features zurück und stellt optionale Features bereit, die Schnittpunkte darstellen und außerdem die 3D-Linien an solchen Punkten teilen.
Abbildung
Verwendung
Die Anzahl der Schnittpunkte wird im Meldungsfenster zurückgegeben. Sie kann in einem Modell oder Skript verwendet werden, um Vorbedingungen für nachfolgende Vorgänge festzulegen.
Dieses Werkzeug bestimmt die Schnittpunkte im euklidischen 3D-Raum. 2D-Linien-Features werden von diesem Werkzeug nicht unterstützt, 2D-Linien-Features mit Höhendefinitionen, die in einem Attributfeld gespeichert sind, können jedoch mit Feature zu 3D nach Attribut in 3D konvertiert werden.
Die Punktausgabe stellt Schnittpunkte zwischen den Eingabe-Linien- und Multipatch-Features dar und enthält die folgenden Attribute:
- LINE_OID – OBJECTID der ursprünglichen Linie, an der der Schnittpunkt gefunden wurde.
- MPATCH_OID – OBJECTID des Multipatch, 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 optionale Linienausgabe unterteilt Linien-Features an den Schnittpunkten und enthält die folgenden Attribute:
- LINE_OID - OBJECTID der ursprünglichen Linie, von der die neue Linie abgeleitet wurde.
- FROM_MP_ID – Die OBJECTID des Multipatch-Features, das den Anfang der Linie schneidet. Mit dem Wert -1 wird angegeben, dass der Anfang der Linie kein Schnittpunkt ist.
- TO_MP_ID – Die OBJECTID des Multipatches, der das Ende der Linie schneidet. Mit dem Wert -1 wird angegeben, dass der Anfang der Linie kein Schnittpunkt 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. Die Summe der Längen jeder neuen Linie, die von einer ursprünglichen Linie abgeleitet wurde, entspricht der 3D-Länge der ursprünglichen Linie.
Durch die Verwendung der Ausgabe-Line-Feature-Class durch den Parameter Ausgabe-Attribute ist es möglich, in den optionalen Ausgabe-Features auf Attributwerte der ursprünglichen Linien zu verweisen.
Syntax
Intersect3DLineWithMultiPatch_3d (in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
Parameter | Erläuterung | Datentyp |
in_line_features | Die Linien-Features, die sich mit den Multipatch-Features schneiden. | Feature Layer |
in_multipatch_features | Die Multipatch-Features, mit denen sich die Linien schneiden. | Feature Layer |
join_attributes (optional) | Die Attribute der Eingabe-Linien-Features, die mit den optionalen Ausgabe-Features gespeichert werden.
| String |
out_point_feature_class (optional) | Optionale Features, die Schnittpunkte zwischen der 3D-Linie und Multipatch darstellen. | Feature Class |
out_line_feature_class (optional) | Optionale Linien-Features, die die Eingabe-Linien an jedem Schnittpunkt mit einem Multipatch-Feature teilen. | Feature Class |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_intersection_count |
Codebeispiel
Intersect3DLineWithMultipatch – 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.Intersect3DLineWithMultiPatch_3d('inLine.shp', 'inMultipatch.shp',
'IDS_ONLY', 'outPts.shp', 'outLine.shp')
Intersect3DLineWithMultipatch – Beispiel 2 (eigenständiges Skript)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
'''****************************************************************************
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)
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert 3D Analyst
- ArcGIS Desktop Standard: Erfordert 3D Analyst
- ArcGIS Desktop Advanced: Erfordert 3D Analyst