Couche 3D vers classe d'entités (3D Analyst)
Récapitulatif
Exporte des couches d'entités dont les propriétés 3D sont définies sur une classe d'entités multipatch.
Utilisation
-
Seules les entités dont le rendu peut être conservé en tant que multipatch sont converties, par exemple les points symbolisés par des symboles ponctuels 3D. Les symboles de remplissage de texture et les couches ArcMap ne sont pas pris en charge, car ils ne conservent aucune propriété 3D.
-
Seules certaines propriétés 3D s'appliquent, notamment :
- des symboles 3D attribués aux points,
- des symboles 3D attribués aux lignes,
- l'extrusion appliquée aux polygones,
- des polygones non extrudés avec des valeurs z,
- le sous-échantillonnage des textures attribué aux multipatch.
-
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.
Remarque :Une couche d'entités contenant des propriétés 3D convient à la plupart des applications de visualisation et ne requiert pas d'être convertie en multipatch. Toutefois, la conversion de la couche en multipatch s'avère particulièrement utile si le multipatch obtenu est utilisé pour des mises à jour supplémentaires dans des logiciels de modélisation tiers ou si le multipatch est volumineux et considéré comme une couche mise en cache dans ArcGlobe.
Syntaxe
Paramètre | Explication | Type de données |
in_feature_layer |
Couche d'entités en entrée dont les propriétés 3D sont définies. | Feature Layer |
out_feature_class |
Classe d'entités multipatch en sortie. | Feature Class |
group_field (Facultatif) |
Champ dans la classe d'entités en entrée qui identifie les entités qui seront combinées dans la même entité multipatch. Les valeurs d'attribut obtenues sont définies sur l'un des enregistrements en entrée. | Field |
Exemple de code
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")
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)