Résumé
Exporte des couches d'entités avec propriétés d'affichage en 3D vers des lignes 3D ou des entités multipatch.
Utilisation
Les couches d’entités dont la symbologie présente les propriétés suivantes sont exportées dans un multipatch :
- Paramètres d'extrusion ou de hauteur de base.
- Symboles ponctuels de type caractère avec profondeur.
- Symboles ponctuels de type modèle 3D dont la taille est spécifiée en unités réelles, tels que les pieds, les pouces, les mètres et les centimètres.
- Symbologie linéaire.
- Symbologie de polygone. Si une couche de polygones est fournie sans propriétés d'affichage en 3D, elle est exportée en tant que multipatch ressemblant au polygone.
Les couches drapées dans ArcGlobe ne sont pas prises en charge. En raison de la nature dynamique des surfaces drapées, les valeurs de hauteur ne sont pas conservées.
Les symboles de remplissage texturés ne sont pas pris en charge. Si une entité de la couche utilise des symboles ponctuels 3D avec des propriétés restreintes, comme des textures, l’entité n’est pas ajoutée en sortie.
Cet outil ne prend pas en charge les entités symbolisées avec les propriétés suivantes :
- Symboles ponctuels de type forme fournis avec un fichier sur le disque.
- Couches rasterisées drapées à la surface de la scène.
- Symboles ponctuels de type forme provenant d'une police mais qui n'ont pas de propriété de profondeur.
- Symboles ponctuels de type 3D dont la taille n’est pas spécifiée en unités réelles, comme les pieds, pouces, mètres ou centimètres.
- Symboles ponctuels avec effet billboard. La position de ces symboles 2D est orientée de façon dynamique pour faire face à la caméra dans une scène 3D. Ils n'ont donc pas d'orientation fixe susceptible d'être utilisée pour l'exportation.
Les paramètres d'environnement de la tolérance XYZ et de la résolution sont uniquement pris en charge lorsque la sortie est une entité linéaire.
Syntaxe
arcpy.ddd.Layer3DToFeatureClass(in_feature_layer, out_feature_class, {group_field})
Paramètre | Explication | Type de données |
in_feature_layer | Couche d'entités en entrée avec propriétés d'affichage en 3D définies. | Feature Layer |
out_feature_class | Classe d’entités en sortie avec des entités 3D. Les points extrudés seront exportés sous forme de lignes 3D. Les points avec symboles 3D, les lignes extrudées et les polygones seront exportés sous forme d’entités multipatch. | Feature Class |
group_field (Facultatif) | Champ de texte de l'entité en entrée qui servira à fusionner plusieurs entités en entrée dans la même entité en sortie. Les attributs restants de la sortie obtenue sont hérités d'un des enregistrements en entrée. | Field |
Exemple de code
1er exemple d'utilisation de l'outil Layer3DToFeatureClass (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.Layer3DToFeatureClass_3d("Points_3D.lyr", "Test.gdb/trees")
2e exemple d'utilisation de l'outil Layer3DToFeatureClass (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''****************************************************************************
Name: Layer3DToFeatureClass Example
Description: This script demonstrates how to use the
Layer3DToFeatureClass tool to create multipatches from all
layers in a target workspace. The layer files are assumed to have
been saved wtih 3D rendering from ArcScene.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
# Use the ListFiles method to identify all layer files in workspace
if arcpy.ListFiles("*.lyr"):
for lyrFile in arcpy.ListFiles("*.lyr"):
# Set Local Variables
outFC = "Test.gdb/{0}".format(lyrFile[:-4]) #Strips '.lyr' from name
#Execute Layer3DToFeatureClass
arcpy.Layer3DToFeatureClass_3d(file, outFC)
else:
"There are no layer files in {0}.".format(env.workspace)
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
- Espace de travail courant
- Domaine XY en sortie
- Domaine Z en sortie
- Système de coordonnées en sortie
- Transformations géographiques
- Étendue
- Résolution XY
- Tolérance XY
- Résolution Z
- Tolérance Z
- Mot-clé CONFIG en sortie
- Validation automatique
- Grille spatiale 1 en sortie
- Grille spatiale 2 en sortie
- Grille spatiale 3 en sortie
Informations de licence
- Basic: Requiert 3D Analyst
- Standard: Requiert 3D Analyst
- Advanced: Requiert 3D Analyst