Intersection ligne 3D avec multipatchs (3D Analyst)

Synthèse

Renvoie le nombre d’intersections géométriques entre les entités multipatch et linéaires 3D, et fournit également des entités facultatives qui représentent des points d’intersection et divisent les lignes 3D en ces points.

Illustration

Intersection ligne 3D avec Multipatchs, exemple

Utilisation

  • Le nombre d’intersections est renvoyé dans la fenêtre de visualisation des messages et peut être utilisé dans un modèle ou un script afin d’établir des préconditions pour les opérations ultérieures.

  • Cet outil détermine les points d'intersection dans l'espace euclidien 3D. Les entités linéaires 2D ne sont pas prises en charge par cet outil, mais celles dont les définitions de hauteur sont stockées dans un champ attributaire peuvent être converties en 3D grâce à l'outil Entité en 3D par attribut.

  • La sortie des points facultative représente les points d'intersection entre les entités multipatch et linéaires en entrée, et contient les attributs suivants :

    • LINE_OID : OBJECTID de la ligne d’origine le long de laquelle l’intersection a été trouvée.
    • MPATCH_OID : OBJECTID du multipatch qui a intersecté la ligne à cet emplacement.
    • DIST_3D : distance 3D le long de la ligne d’origine à laquelle l’intersection a été trouvée.
  • La sortie des lignes facultative divise les entités linéaires en entrée aux points d'intersection et contient les attributs suivants :

    • LINE_OID : OBJECTID de la ligne d’origine de laquelle la nouvelle ligne est dérivée.
    • FROM_MP_ID : OBJECTID de l’entité multipatch qui intersecte le début de la ligne. Une valeur de -1 permet d'indiquer que le début de la ligne n'est pas un point d'intersection.
    • TO_MP_ID : OBJECTID du multipatch qui intersecte la fin de la ligne. Une valeur de -1 permet d'indiquer que le début de la ligne n'est pas un point d'intersection.
      Remarque :

      Si une ligne n’intersecte aucun multipatch, elle est copiée directement dans la sortie et ses champs FROM_MP_ID et TO_MP_ID contiennent la valeur -1.

    • DIST_3D : distance 3D le long de la ligne d’origine à laquelle une intersection a été trouvée et qui représente le début de cette nouvelle ligne.
    • LENGTH_3D : longueur 3D de cette nouvelle ligne. La somme de la longueur de chaque nouvelle ligne issue d'une ligne d'origine est égale à la longueur 3D de cette ligne d'origine.
  • Les valeurs d'attribut des lignes d'origine peuvent être référencées dans les entités en sortie facultatives via l'utilisation de classe d'entités lignes en sortie, grâce au paramètre Attributs de jointure.

Paramètres

ÉtiquetteExplicationType de données
Entités linéaires en entrée

Entités linéaires qui seront intersectées avec les entités multipatch.

Feature Layer
Entités multipatch en entrée

Entités multipatch en fonction desquelles les lignes seront intersectées.

Feature Layer
Attributs de jointure
(Facultatif)

Les attributs des entités linéaires en entrée qui seront stockés avec les entités en sortie facultatives.

  • IDS_ONLY Seuls les numéros d'identification des entités seront stockés. Il s’agit de l’option par défaut.
  • ALLTous les attributs seront stockés.
String
Points en sortie
(Facultatif)

Entités facultatives qui représentent les points d'intersection entre la ligne 3D et le multipatch.

Feature Class
Lignes en sortie
(Facultatif)

Entités linéaires facultatives qui divisent les lignes en entrée à chaque point d’intersection avec une entité multipatch.

Feature Class

Sortie obtenue

ÉtiquetteExplicationType de données
Nombre d’intersections

Nombre d’intersections.

Entier long

arcpy.ddd.Intersect3DLineWithMultiPatch(in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
NomExplicationType de données
in_line_features

Entités linéaires qui seront intersectées avec les entités multipatch.

Feature Layer
in_multipatch_features

Entités multipatch en fonction desquelles les lignes seront intersectées.

Feature Layer
join_attributes
(Facultatif)

Les attributs des entités linéaires en entrée qui seront stockés avec les entités en sortie facultatives.

  • IDS_ONLY Seuls les numéros d'identification des entités seront stockés. Il s’agit de l’option par défaut.
  • ALLTous les attributs seront stockés.
String
out_point_feature_class
(Facultatif)

Entités facultatives qui représentent les points d'intersection entre la ligne 3D et le multipatch.

Feature Class
out_line_feature_class
(Facultatif)

Entités linéaires facultatives qui divisent les lignes en entrée à chaque point d’intersection avec une entité multipatch.

Feature Class

Sortie obtenue

NomExplicationType de données
out_intersection_count

Nombre d’intersections.

Entier long

Exemple de code

1er exemple d'utilisation de l'outil Intersect3DLineWithMultipatch (fenêtre Python)

L’exemple suivant illustre l’utilisation de cet outil dans la fenêtre Python.

arcpy.env.workspace = 'C:/data'
arcpy.Intersect3DLineWithMultiPatch_3d('inLine.shp', 'inMultipatch.shp', 
                                     'IDS_ONLY', 'outPts.shp', 'outLine.shp')
2e exemple d'utilisation de l'outil Intersect3DLineWithMultipatch (script autonome)

L’exemple suivant illustre l’utilisation de cet outil dans un script Python autonome.

'''****************************************************************************
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)

Rubriques connexes