Multipatch in Collada (Conversion)
Zusammenfassung
Konvertiert ein oder mehrere Multipatch-Features in eine Sammlung von COLLADA-Dateien 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 unterhalb der COLLADA-Datei in einem Unterverzeichnis für Bilder gespeichert.
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 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.
Syntax
Parameter | Erläuterung | Datentyp |
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.
| Boolean |
field_name |
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. | String |
Codebeispiel
Das folgende Skript für das Python-Fenster veranschaulicht, wie Sie die Funktion "MultipatchToCollada" im unmittelbaren Modus verwenden.
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.MultipatchToCollada_conversion("Buildings","C:/COLLADA", PREPEND_SOURCE_NAME, "BldName")
Das folgende eigenständige Skript veranschaulicht, wie Sie die Funktion "MultipatchToCollada" verwenden.
# Name: MultipatchToCollada_Example2.py # Description: The following stand-alone script demonstrates how to use the # MultipatchToCollada tool to convert all multipatch shapefiles # in a target workspace. # Requirements: 3D Analyst extension # Author: ESRI # Import system modules import arcpy from arcpy import env # Obtain a license for the 3D Analyst extension arcpy.CheckOutExtension("3D") # Set environment settings env.workspace = "C:/data" try: # Create list of feature classes in workspace fcList = arcpy.ListFeatureClasses() # Determine if the list contained any feature classes if len(fcList) > 0: # 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": # Set Local Variables ## 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 = "Name" #Execute MultipatchToCollada arcpy.MultipatchToCollada(fc, outDir, prepend, fldName) del outDir, prepend, fldName else: print "There are no multipatch shapefiles in " + env.workspace + "." else: print "There are no feature classes in " + env.workspace + "." except Exception as e: # Returns any other error messages print arcpy.GetMessages(2) del arcpy