Intersection lignes 3D avec Multipatches (3D Analyst)
Récapitulatif
Calcule une intersection géométrique des entités multipatch et lignes en entrée et renvoie le nombre de points de l'intersection. Les points (d'intersection) et/ou les lignes (résultant des lignes en entrée rompues au niveau des points d'intersection) peuvent éventuellement être enregistrées dans les classes d'entités en sortie.
Pour en savoir plus sur la fonction Intersection lignes 3D avec Multipatches (3D Analyst)
Illustration
Utilisation
-
Une classe d'entités multipatch et une classe d'entités lignes 3D sont requises en entrée.
L'outil détermine l'intersection entre chaque ligne sélectionnée (ou toutes les lignes, si aucune n'est sélectionnée) dans la classe d'entités lignes en entrée, et chaque multipatch sélectionné (ou tous les multipatches, si aucun n'est sélectionné) dans la classe d'entités multipatch en entrée.
-
Les valeurs attributaire des entités lignes en entrée peuvent être transférées vers la classe d'entités lignes en sortie facultative.
L'outil génère également une sortie numérique (nombre entier), en indiquant le nombre de points d'intersection détectés, et ce même si aucune classe d'entités en sortie n'est spécifiée.
Une ou les deux classes d'entité en sortie peuvent être spécifiées, ou aucune des deux (c.-à-d. point et/ou ligne ou ni l'un ni l'autre). Si aucune classe n'est précisée, cela signifie que vous utilisez un modèle ou un script et que vous utilisez le nombre d'intersections en sortie.
Les multipatch n'ont pas à être fermés.
Les entités en sortie ont une géométrie tridimensionnelle.
-
Les champs suivants sont présents dans la classe d'entités points en sortie facultative :
- OID : OBJECTID du point.
- Forme : géométrie du point.
- 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.
-
Les champs suivants sont présents dans la classe d'entités lignes en sortie facultative :
- OID : OBJECTID du point.
- Forme : géométrie de la ligne.
- LINE_OID : OBJECTID de la ligne d'origine le long de laquelle l'intersection a été détectée, et à partir de laquelle cette nouvelle ligne a été déployée.
- FROM_MP_ID : OBJECTID du multipatch qui a intersecté la ligne d'origine au début de cette nouvelle ligne (-1 si aucun multipatch).
- TO_MP_ID : OBJECTID du multipatch qui a intersecté la ligne d'origine à la fin de cette nouvelle ligne (-1 si aucun multipatch).
- 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.
L'outil Intersection lignes 3D avec Multipatches est un opérateur de jeu 3D qui fait partie du jeu d'outils Entités 3D. Pour plus d'informations sur les opérateurs de jeu à utiliser et sur la manière de les utiliser, reportez-vous à la rubrique Utilisation d'opérateurs de jeu 3D.
Syntaxe
Paramètre | Explication | Type de données |
in_line_features |
Classe ou couche d'entités lignes en entrée. | Feature Layer |
in_multipatch_features |
Classe ou couche d'entités multipatch en entrée. | Feature Layer |
join_attributes (Facultatif) |
Permet de copier dans la classe d'entités lignes en sortie facultative tous les champs non requis (c.-à-d. non ObjectID ou géométrie) et toutes les valeurs de la classe d'entités lignes en entrée.
| String |
out_point_feature_class (Facultatif) |
Classe d'entités facultative dans laquelle sont placés les points d'intersection. | Feature Class |
out_line_feature_class (Facultatif) |
Classe d'entités facultative dans laquelle sont placées les lignes (lignes en entrée rompues au niveau des points d'intersection). | Feature Class |
Exemple de code
Le script de fenêtre Python suivant illustre l'utilisation de la fonction Intersection lignes 3D avec Multipatches en mode immédiat.
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')
Le script de fenêtre Python suivant illustre l'utilisation de la fonction Intersection lignes 3D avec Multipatches dans un script 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)