Beschriftung | Erläuterung | Datentyp |
Eingabe-Multipatch-Features | Die zu exportierenden Multipatch-Features. | Feature Layer |
Ausgabe-Collada-Ordner | Der Zielordner, in den die COLLADA-Ausgabedateien und Texturbilddateien eingefügt werden. | Folder |
Quellenname voranstellen (optional) | Gibt an, ob den Namen der COLLADA-Ausgabedateien der Name des Quellen-Feature-Layers vorangestellt werden soll.
| Boolean |
Feldname verwenden (optional) | Das Feature-Attribut, das für alle exportierten Features als COLLADA-Ausgabedateiname verwendet wird. Wenn kein Feld angegeben wird, wird die Objekt-ID des Features verwendet. | Field |
Collada-Version | Gibt an, in welche COLLADA-Version die Dateien exportiert werden.
| String |
Zusammenfassung
Konvertiert Multipatch-Features in eine Sammlung von COLLADA-Dateien (.dae) und referenzierte Texturbilddateien in einen Ausgabeordner.
Verwendung
Eine COLLADA-Datei ist eine XML-Darstellung eines 3D-Objekts, das auf zusätzliche Bilddateien verweisen kann, die als auf die 3D-Geometrie drapierte Texturen fungieren. Das bedeutet, dass das Exportieren eines Multipatch-Features in COLLADA dazu führen kann, dass mehrere Dateien erstellt werden: eine .dae-Datei mit der XML-Repräsentation des 3D-Objekts und mindestens eine Bilddatei (z. B. eine .jpg- oder eine .png-Datei) mit den Texturen.
Mit diesem Werkzeug wird für jedes Multipatch-Feature, das exportiert wird, eine COLLADA-Repräsentation erstellt. Für das Werkzeug wird ein Feldwert aus den einzelnen Features (standardmäßig die Objekt-ID) verwendet, um die Ausgabedateinamen festzulegen. Dadurch kann erkannt werden, welches Feature in welche COLLADA-Datei exportiert wurde, und beim Exportieren mehrerer Features in dasselbe Verzeichnis können eindeutige Namen festgelegt werden. Texturdateien werden im selben Verzeichnis gespeichert wie die COLLADA-Datei. Zur Minimierung der Gesamtgröße der Exportdatei werden Texturen, die in mehreren COLLADA-Dateien verwendet werden (z. B. Texturen mit sich wiederholenden Ziegeln oder Fenstern), nur einmal exportiert und von den jeweiligen .dae-Dateien referenziert.
Mit diesem Werkzeug werden vorhandene COLLADA-Dateien mit demselben Dateinamen automatisch überschrieben. In diesem Fall wird eine Warnmeldung mit den Dateien angezeigt, die beim Exportieren mit einer neuen Datei überschrieben wurden. Für Features, die nicht exportiert werden können, weil das Ausgabeverzeichnis beispielsweise schreibgeschützt oder der Datenträger voll ist, wird ebenfalls eine Geoverarbeitungsmeldung generiert.
Wenn Sie sicherstellen möchten, dass für alle exportierten Multipatch-Features eine neue COLLADA-Datei erstellt wird, legen Sie als Zielverzeichnis einen leeren oder neuen Ordner fest und wählen ein für jedes Feature eindeutiges Dateinamensfeld aus. Wenn zwei Features mit demselben Attributwert exportiert werden, wird mit dem als zweites exportierten Feature die COLLADA-Datei des als erstes exportierten Features überschrieben.
Wenn Sie ein Multipatch-Feature wiederholt aktualisieren, indem Sie es in eine COLLADA-Datei exportieren und Änderungen außerhalb von ArcGIS vornehmen, exportieren Sie das Feature jedes Mal in dasselbe Verzeichnis. Dadurch wird für dieses Feature nur eine Datei auf der Festplatte gespeichert, die den aktuellen Status des 3D-Objekts darstellt.
Wenn sich das exportierte Multipatch in einem projizierten Koordinatensystem befindet, wie etwa bei einem in einer UTM-Zone gespeicherten Gebäude, wird zudem im Ausgabeordner eine .kml-Datei erstellt, die die Koordinaten als WGS84 enthält. Dabei wird keine Datumstransformation verwendet, was bei der Anzeige des KML-Elements zu Positionsabweichungen führen kann.
Tipp:
Beim Konvertieren von Multipatches aus einem Layer werden vom Werkzeug automatisch im Renderer des Layers definierte Farben eingebettet. Wenn im Layer beispielsweise Features basierend auf einem Attribut für die Nutzungsart (wie Rot für Gewerbegebäude, Blau für Wohngebäude usw.) gerendert werden, werden diese Farben in die COLLADA-Ausgabedateien eingebunden. Die angezeigte Farbe wird auf Multipatch-Features mit und ohne Textur angewendet, wobei Multipatch-Features mit Textur auf die zugrunde liegenden Texturdateien des Features aktualisiert werden müssen. Zum Exportieren von Multipatches mit Textur und unveränderten Bildern können Sie als Anzeigefarbe Weiß verwenden.
Parameter
arcpy.conversion.MultipatchToCollada(in_features, output_folder, {prepend_source}, {field_name}, collada_version)
Name | 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) | Gibt an, ob den Namen der COLLADA-Ausgabedateien der Name des Quellen-Feature-Layers vorangestellt werden soll.
| Boolean |
field_name (optional) | Das Feature-Attribut, das für alle exportierten Features als COLLADA-Ausgabedateiname verwendet wird. Wenn kein Feld angegeben wird, wird die Objekt-ID des Features verwendet. | Field |
collada_version | Gibt an, in welche COLLADA-Version die Dateien exportiert werden.
| String |
Codebeispiel
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.conversion.MultipatchToCollada("Sample.gdb/Buildings", "C:/COLLADA",
"PREPEND_SOURCE_NAME", "BldName")
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'
# Run MultipatchToCollada
arcpy.conversion.MultipatchToCollada(fc, outDir, prepend, fldName)
else:
print('There are no feature classes in {0}.'.format(inWorkspace))