Résumé
Détermine si les entités 3D d'une classe d'entités en entrée sont contenues dans un multipatch fermé, et écrit une table en sortie qui enregistre les entités partiellement ou entièrement dans le multipatch.
Illustration
Utilisation
Toutes les entités en entrée doivent comporter des informations z stockées dans leur géométrie. Si une classe d'entités 2D contient des mesures de hauteur se basant sur des champs, l'outil Entité en 3D par attribut peut permettre de créer une classe d'entités 3D.
-
La géométrie multipatch fermée est requise pour cette analyse. L'outil Fermeture 3D permet de déterminer si une classe d'entités multipatch contient des entités fermées et l'outil Inclure un multipatch permet d'éliminer des intervalles dans les entités multipatchs.
Si l'option Tableau en sortie complexe est sélectionnée, un enregistrement est créé pour chaque multipatch qu'intersecte une entité en entrée donnée. Une entité peut appartenir à plusieurs entités multipatch fermées et avoir plusieurs entrées dans la table en sortie.
Les champs suivants sont présents dans la table en sortie :
- Target_ID : identifiant unique de l'entité en entrée.
- Status : indique si l'entité identifiée par le champ Target_ID se trouve entièrement ou partiellement à l'intérieur d'un multipatch.
- Contain_ID : identifie l'ID unique du multipatch qui intersecte les entités en entrée entièrement ou partiellement à l'intérieur. Uniquement inclus si l'option Tableau en sortie complexe est sélectionnée.
Syntaxe
arcpy.ddd.Inside3D(in_target_feature_class, in_container_feature_class, out_table, {complex_output})
Paramètre | Explication | Type de données |
in_target_feature_class | Multipatch en entrée ou classe d'entités 3D ponctuelle, linéaire ou surfacique. | Feature Layer |
in_container_feature_class | Entités multipatch fermées utilisées en tant que conteneurs pour les entités en entrée. | Feature Layer |
out_table | Table en sortie qui fournit une liste d'entités en entrée 3D appartenant totalement ou partiellement à des entités multipatch en entrée fermées. La table en sortie contient un champ OBJECTID (identifiant d'objet), Target_ID et Status. Le champ Status indique si l'entité en entrée (Target_ID) se trouve entièrement ou partiellement à l'intérieur d'un multipatch. | Table |
complex_output (Facultatif) | Spécifie si la table en sortie identifie la relation entre les outils Entités en entrée et Entités multipatch en entrée via la création d'un champ Contain_ID qui identifie l'entité multipatch comportant l'entité en entrée.
Spécifie si la table en sortie identifie la relation entre les outils Entités en entrée et Entités multipatch en entrée via la création d'un champ Contain_ID qui identifie l'entité multipatch comportant l'entité en entrée.
| Boolean |
Exemple de code
1er exemple d'utilisation de l'outil Inside3D (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.Inside3D_3d('inFeature.shp', 'sample.gdb/multipatch', 'sample.gdb/output_table')
2e exemple d'utilisation de l'outil Inside3D (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Inside3D Example
Description: This script demonstrates how to use the
Inside3D 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
inFC = 'Points_3D.shp' # the input feature
inMP = 'Buildings.shp' # the input multi-patch
# Ensure output has a unique name
outTbl = arcpy.CreateUniqueName('Output_Table.dbf')
# Execute Inside 3D
arcpy.Inside3D_3d(inFC, inMP, outTbl)
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