Multipatch in Collada (Conversion)

Zusammenfassung

Konvertiert ein oder mehrere Multipatch-Features in eine Sammlung von COLLADA-Dateien (.dae) und referenzierten Texturbilddateien in einem Ausgabeordner. Bei den Eingaben kann es sich um eine Layer- oder Feature-Class handeln.

Verwendung

  • COLLADA-Dateien sind eine XML-Darstellung eines 3D-Objekts, das auf zusätzliche Bilddateien verweisen kann, die als auf die 3D-Geometrie drapierte Texturen fungieren. Dies bedeutet, dass das Exportieren eines Multipatch-Features nach COLLADA zur Erstellung mehrerer Dateien führen kann: eine .dae-Datei, die die XML-Darstellung des 3D-Objekts und eine oder mehrere Bilddateien (z. B. eine .jpg- oder eine .png-Datei) enthält, die wiederum die Texturen enthalten.

  • Dieses Werkzeug erstellt eine COLLADA-Repräsentation für jedes Multipatch-Feature, das es exportiert. Das Werkzeug verwendet einen Feldwert jedes Features (standardmäßig ist dies die Objekt-ID), um die Ausgabedateinamen zu definieren. Auf diese Weise kann einfacher ermittelt werden, welches Feature in welche COLLADA-Datei exportiert wurde. Außerdem wird die Methodik zum Definieren von eindeutigen Namen bereitgestellt, wenn mehrere Features in das gleiche Verzeichnis exportiert werden. Texturdateien werden im selben Verzeichnis wie die COLLADA-Datei gespeichert. Um die Gesamtgröße der Exportdatei zu minimieren, werden Texturen, die in mehreren COLLADA-Dateien verwendet werden – beispielsweise eine wiederholte Ziegel- oder Fenstertextur – nur einmal exportiert und dann von den entsprechenden DAE-Dateien referenziert.

  • Dieses Werkzeug überschreibt alle vorhandenen COLLADA-Dateien automatisch mit dem gleichen Dateinamen. Wenn dies geschieht, wird in einer Warnmeldung angegeben, welche Dateien während des Exportvorgangs durch eine neue Datei überschrieben wurden. Eine GV-Meldung wird auch für alle Features generiert, die nicht exportiert werden. Dies kann z. B. der Fall sein, wenn das Ausgabeverzeichnis schreibgeschützt oder der Datenträger voll ist.

  • Um sicherzustellen, dass eine neue COLLADA-Datei für alle exportierten Multipatch-Features erstellt wird, legen Sie das Zielverzeichnis auf einen leeren oder neuen Ordner fest, und wählen Sie ein Dateinamenfeld aus, das für jedes Feature eindeutig ist. Das Exportieren von zwei Features mit dem gleichen Attributwert führt dazu, dass das zweite exportierte Feature die COLLADA-Datei des ersten überschreibt.

  • Wenn Sie ein Multipatch-Feature iterativ aktualisieren, indem Sie es im COLLADA-Format exportieren und außerhalb von ArcGIS Änderungen vornehmen, sollten Sie das Feature jedes Mal an den gleichen Speicherort exportieren. Auf diese Weise ist auf dem Datenträger eine einzelne Datei für dieses Feature vorhanden, die den aktuellen Status des 3D-Objekts darstellt.

  • Wenn sich das exportierte Multipatch in einem projizierten Koordinatensystem befindet, z. B. ein in einer UTM-Zone gespeichertes Gebäude, wird auch eine KML-Datei mit den WGS84-Koordinaten im Ausgabeordner erstellt. Beachten Sie, dass dabei keine Datumstransformation verwendet wird, was beim Anzeigen der KML-Datei Positionsabweichungen zur Folge haben kann.

    Tipp:

    Wenn Multipatches von einem Layer konvertiert werden, bettet das Werkzeug "Multipatch in COLLADA" automatisch alle im Renderer des Layers definierten Farben ein. Wenn der Layer beispielsweise Features auf Grundlage eines Verwendungstypattributs rendert (z. B. Rot für Gewerbegebiet, Blau für Wohngebiet usw.), dann sind diese Farben in den COLLADA-Ausgabedateien enthalten. Die angezeigte Farbe wird auf Multipatch-Features mit Textur und ohne Textur angewendet, wobei für ein Multipatch mit Textur eine Aktualisierung der zugrunde liegenden Texturdateien des Features erforderlich ist. Sie können eine einzelne Anzeigefarbe Weiß verwenden, um Multipatches mit Textur mit unveränderten Bildern zu exportieren.

Syntax

arcpy.conversion.MultipatchToCollada(in_features, output_folder, {prepend_source}, {field_name})
ParameterErklärungDatentyp
in_features

Die zu exportierenden Multipatch-Features.

Feature Layer
output_folder

Der Zielordner, in den die COLLADA-Ausgabedateien und Texturbilddateien eingefügt werden.

Folder
prepend_source
(optional)

Den Dateinamen der COLLADA-Ausgabedateien wird der Name des Quell-Feature-Layers vorangestellt.

  • PREPEND_SOURCE_NAMEDen Dateinamen wird der Name vorangestellt.
  • PREPEND_NONEDen Dateinamen wird der Name nicht vorangestellt. Dies ist die Standardeinstellung.
Boolean
field_name
(optional)

Das Feature-Attribut, das für jedes exportierte Feature als Name der COLLADA-Ausgabedatei verwendet werden soll. Wenn kein Feld angegeben wird, wird die Objekt-ID des Features verwendet.

Field

Codebeispiel

MultipatchToCollada – Beispiel 1 (Python-Fenster)

Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.

import arcpy
from arcpy import env

env.workspace = "C:/data"
arcpy.MultipatchToCollada_conversion("Sample.gdb/Buildings", "C:/COLLADA", 
                                   "PREPEND_SOURCE_NAME", "BldName")
MultipatchToCollada – Beispiel 2 (eigenständiges Skript)

Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.

'''*********************************************************************
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))

Umgebungen

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen