Multipatch vers Collada (Conversion)

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.

    Astuce :

    Lorsque vous convertissez des multipatchs à partir d'une couche, l'outil Multipatch vers COLLADA incorpore automatiquement toutes les couleurs définies dans le moteur de rendu de la couche. Par exemple, si la couche affiche des entités selon un attribut de type d'utilisation (par exemple rouge pour un usage commercial, bleu pour un usage résidentiel, etc.), ces couleurs sont incluses dans les fichiers COLLADA en sortie. La couleur affichée s'applique aux deux entités multipatch avec et sans texture, la première nécessitant une mise à jour des fichiers de texture sous-jacents de l'entité. Vous pouvez utiliser le blanc comme couleur d'affichage unique pour exporter des multipatchs texturés avec des images inchangées.

Syntaxe

MultipatchToCollada(in_features, output_folder, {prepend_source}, {field_name})
ParamètreExplicationType 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.

  • PREPEND_SOURCE_NAMEAjoute un préfixe aux noms de fichier.
  • PREPEND_NONEN'ajoute pas de préfixe aux noms de fichier. Il s'agit de l'option par défaut.
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

# Script variables
inWorkspace = arcpy.GetParameterAsText(0)

# Set environment settings
arcpy.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))

Environnements

Cet outil n'utilise pas d’environnement de géotraitement.

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes