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 | 
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