Zusammenfassung
Gibt die Anzahl der geometrischen Schnittpunkte zwischen 3D-Linien- und Multipatch-Features zurück. Optional werden Features bereitgestellt, die die Schnittpunkte darstellen und gleichzeitig die 3D-Linien an den Schnittpunkten 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: Die OBJECTID der ursprünglichen Linie, die einen Schnittpunkt aufweist.
- MPATCH_OID: Die OBJECTID des Multipatch, das sich an dieser Position mit der Linie überschneidet.
- DIST_3D: Die 3D-Entfernung entlang der ursprünglichen Linie, bei der sich der Schnittpunkt befindet.
Die optionale Linienausgabe unterteilt Linien-Features an den Schnittpunkten und enthält die folgenden Attribute:
- LINE_OID: Die 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 Multipatch, das das Ende der Linie schneidet. Mit dem Wert -1 wird angegeben, dass der Anfang der Linie kein Schnittpunkt ist.
- DIST_3D: Die 3D-Entfernung entlang der ursprünglichen Linie, bei der ein Schnittpunkt gefunden wurde 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
arcpy.ddd.Intersect3DLineWithMultiPatch(in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
Parameter | Erklärung | 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 | Die Anzahl der Schnittpunkte. | Long |
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
- Basic: Erfordert 3D Analyst
- Standard: Erfordert 3D Analyst
- Advanced: Erfordert 3D Analyst