Résumé
Convertit une ou plusieurs entités multipatch en collection de fichiers COLLADA (.dae) et de fichiers image de type texture référencés dans un dossier en sortie. Il est possible d'avoir en entrée une couche ou une classe d'entités.
Utilisation
Les fichiers COLLADA sont une représentation XML d'un objet 3D qui peut référencer des fichiers image supplémentaires qui agissent comme des textures drapées sur la géométrie 3D. Cela signifie que l'exportation d'une entité multipatch vers COLLADA peut aboutir à la création de plusieurs fichiers, un fichier .dae contenant la représentation XML de l'objet 3D et un ou plusieurs fichiers image (par exemple, un fichier .jpg ou .png) pour les textures.
Cet outil crée une représentation COLLADA pour chaque entité multipatch qu'il exporte. L'outil utilise une valeur de champ de chaque entité pour définir les noms de fichier en sortie. Par défaut, il s'agit de la valeur de champ Identifiant de l'objet. Cette procédure facile l'identification de l'entité exportée et du fichier COLLADA destinataire de l'export et propose une méthode pour définir des noms uniques lors de l'exportation de plusieurs entités vers le même répertoire. Les fichiers de texture sont stockés dans le même répertoire que le fichier COLLADA. Pour réduire la taille totale du fichier d'exportation, les textures qui sont utilisées dans plusieurs fichiers COLLADA (par exemple une brique répétée ou une texture de vitrine) ne sont exportées qu'une seule fois, puis référencées par les fichiers DAE appropriés.
Cet outil remplace automatiquement tous les fichiers COLLADA existants portant le même nom de fichier. Dans ce cas, un message d'avertissement indique quels fichiers ont été remplacés par un nouveau fichier pendant le processus d'exportation. Le système renvoie également un message GP lorsque l'exportation des entités à échoué, par exemple si l'emplacement en sortie est accessible en lecture seule ou si le disque est saturé.
Pour garantir qu'un nouveau fichier COLLADA est créé pour toutes les entités multipatch exportées, sélectionnez comme répertoire de destination un nouveau dossier ou un dossier vide et choisissez comme nom de fichier un nom unique pour chaque entité. Si vous exportez deux entités avec la même valeur attributaire, l'entité exportée en second vient remplacer le fichier COLLADA de la première entité exportée.
Lorsque vous effectuez une mise à jour itérative d'une entité multipatch en l'exportant vers un fichier COLLADA et en apportant des modifications en dehors d'ArcGIS, veillez à exporter chaque fois l'entité vers le même emplacement. Vous aurez ainsi un fichier unique associé à cette entité sur le disque, contenant la dernière mise à jour de l'objet 3D.
Si le multipatch exporté se trouve dans un système de coordonnées projetées (construction stockée dans une zone UTM, par exemple), un fichier KML qui contient les coordonnées au format WGS84 est alors également créé dans le dossier en sortie. Notez que ce processus n'utilise pas de transformation de datum, car cela risquerait de provoquer des écarts de localisation lors de l'affichage du fichier KML.
Syntaxe
arcpy.conversion.MultipatchToCollada(in_features, output_folder, {prepend_source}, {field_name})
Paramètre | Explication | Type de données |
in_features | Entités multipatch à exporter. | Feature Layer |
output_folder | Dossier de destination contenant les fichiers COLLADA et les fichiers image de type texture en sortie. | Folder |
prepend_source (Facultatif) | Ajoute un préfixe aux noms de fichier COLLADA en sortie avec le nom de la couche d'entité source.
| Boolean |
field_name (Facultatif) | Attribut d'entité à utiliser comme nom de fichier COLLADA en sortie pour chaque entité exportée. Si aucun champ n'est spécifié, le système utilise l'identifiant objet de l'entité. | Field |
Exemple de code
Exemple 1 d'utilisation de l'outil MultipatchToCollada (fenêtre Python)
L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.MultipatchToCollada_conversion("Sample.gdb/Buildings", "C:/COLLADA",
"PREPEND_SOURCE_NAME", "BldName")
Exemple 2 d'utilisation de l'outil MultipatchToCollada (script autonome)
L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.
'''*********************************************************************
Name: Convert Multipatch To Collada
Description: Converts multipatch features in an input workspace
to a Collada model.
*********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
# Script variables
inWorkspace = arcpy.GetParameterAsText(0)
try:
# Set environment settings
env.workspace = inWorkspace
# Create list of feature classes in workspace
fcList = arcpy.ListFeatureClasses()
# Determine if the list contained any feature classes
if fcList:
# Iterate through each feature class
for fc in fcList:
# Describe the feature class
desc = arcpy.Describe(fc)
# Determine if feature class is a multipatch
if desc.shapeType is 'MultiPatch':
# Ensure unique name for output folder
outDir = arcpy.CreateUniqueName('collada_dir')
# Specify that collada file is prefixed by source name
prepend = 'PREPEND_SOURCE_NAME'
# Specify the feature attribute used to name Collada files
fldName = 'OID'
#Execute MultipatchToCollada
arcpy.MultipatchToCollada(fc, outDir, prepend, fldName)
else:
print 'There are no feature classes in {0}.'.format(inWorkspace)
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
Cet outil n'utilise pas d’environnement de géotraitement.
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui