Resumen
Devuelve el número de intersecciones geométricas entre líneas 3D y entidades multiparche y proporciona asimismo entidades opcionales que representan puntos de intersección y dividen también las líneas 3D en dichos puntos.
Ilustración
Uso
El recuento de intersecciones se devolverá en la ventana de mensajes y se puede usar en un modelo o script para establecer las precondiciones de las operaciones posteriores.
Esta herramienta determina los puntos de intersección en un espacio 3D euclidiano. La herramienta no admite las entidades de línea 2D, pero las entidades de línea 2D con definiciones de altura almacenadas en un campo de atributos se pueden convertir a 3D utilizando De entidad a 3D por atributo.
La salida de punto opcional representa puntos de intersección entre la línea de entrada y las entidades multiparche y contiene los siguientes atributos:
- LINE_OID: OBJECTID de la línea original a lo largo de la cual se encontró la intersección.
- MPATCH_OID: OBJECTID del multiparche que intersecó la línea en esta ubicación.
- DIST_3D: distancia 3D a lo largo de la línea original en la que se encontró la intersección.
La salida de línea opcional divide las entidades de línea de entrada en los puntos de intersección y contiene los siguientes atributos:
- LINE_OID: OBJECTID de la línea original de la que se derivó la nueva línea.
- FROM_MP_ID: OBJECTID de la entidad multiparche que se interseca con el principio de la línea. Para indicar que el principio de la línea no es un punto de intersección se utiliza el valor -1.
- TO_MP_ID: OBJECTID del multiparche que se interseca con el final de la línea. Para indicar que el principio de la línea no es un punto de intersección se utiliza el valor -1.
- DIST_3D: la distancia 3D a lo largo de la línea original en la que se encontró la intersección y que representa el comienzo de esta línea nueva.
- LENGTH_3D: la longitud 3D de esta línea nueva. La suma de las longitudes de cada línea nueva derivada de una línea original será igual a la longitud 3D de esa línea original.
Se puede hacer referencia a los valores de atributos de las líneas originales en las entidades de salida opcionales mediante el uso de la clase de entidad de la línea de salida a través del parámetro Unir atributos.
Sintaxis
Intersect3DLineWithMultiPatch(in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
Parámetro | Explicación | Tipo de datos |
in_line_features | Entidades de línea que se intersecarán con las entidades multiparche. | Feature Layer |
in_multipatch_features | Las entidades multiparche que las líneas intersecarán. | Feature Layer |
join_attributes (Opcional) | Atributos de la entidad de línea que se almacenarán con las entidades de salida opcionales.
| String |
out_point_feature_class (Opcional) | Las entidades opcionales que representan puntos de intersección entre la línea 3D y un multiparche. | Feature Class |
out_line_feature_class (Opcional) | Entidades de línea opcionales que dividen líneas de entrada en cada punto de intersección con una entidad multiparche. | Feature Class |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_intersection_count | El recuento de intersecciones. | Largo |
Muestra de código
Ejemplo 1 de Intersect3DLineWithMultipatch (ventana de Python)
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de 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')
Ejemplo 2 de Intersect3DLineWithMultipatch (script independiente)
En el siguiente ejemplo se muestra cómo usar esta herramienta en un script independiente de Python.
'''****************************************************************************
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)
Entornos
Información sobre licencias
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst