3D-Linie mit Multipatch verschneiden (3D Analyst)

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

Beispiel "3D-Linie mit Multipatch verschneiden"

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.
      Hinweis:

      Wenn sich eine Linie nicht mit einem Multipatch überschneidet, wird sie direkt in die Ausgabe kopiert und die Felder FROM_MP_ID und TO_MP_ID erhalten den Wert -1.

    • 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

Intersect3DLineWithMultiPatch(in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
ParameterErklärungDatentyp
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.

  • IDS_ONLY Es werden nur Feature-Identifikationsnummern gespeichert. Dies ist die Standardeinstellung.
  • ALLAlle Attribute werden gespeichert.
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

NameErklärungDatentyp
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.

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

# Set environment settings
arcpy.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)

Lizenzinformationen

  • Basic: Erfordert 3D Analyst
  • Standard: Erfordert 3D Analyst
  • Advanced: Erfordert 3D Analyst

Verwandte Themen