Résumé
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
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.
- 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.
Syntaxe
arcpy.ddd.Intersect3DLineWithMultiPatch(in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
Paramètre | Explication | Type 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.
| 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 dérivée
Nom | Explication | Type 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.
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')
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
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)
Environnements
Informations de licence
- Basic: Requiert 3D Analyst
- Standard: Requiert 3D Analyst
- Advanced: Requiert 3D Analyst