Label | Explanation | Data Type |
Input Multipatch Features
| The multipatch features to be exported. | Feature Layer |
Output COLLADA Folder
| The destination folder where the output COLLADA files and texture image files will be placed. | Folder |
Prepend Source Name
(Optional) | Specifies whether the names of the output COLLADA files will be prepended with the name of the source feature layer.
| Boolean |
Use Field Name
(Optional) | The feature attribute that will be used as the output COLLADA file name for each exported feature. If no field is specified, the feature's Object ID will be used. | Field |
COLLADA Version
| Specifies the COLLADA version to which the files will be exported.
| String |
Summary
Converts one or more multipatch features into a collection of COLLADA files (.dae) and referenced texture image files in an output folder.
Usage
A COLLADA file is an XML representation of a 3D object that can reference additional image files that act as textures draped onto the 3D geometry. This means that exporting a multipatch feature to COLLADA can result in the creation of several files—a .dae file containing the XML representation of the 3D object and one or more image files (for example, a .jpg or .png file) that contain the textures.
This tool creates one COLLADA representation for each multipatch feature that it exports. The tool uses a field value from each feature—by default, this is the Object ID—to define the output file names. This allows the identification of which feature was exported to which COLLADA file and provides the methodology for defining unique names when exporting multiple features to the same directory. Texture files are stored in the same directory as the COLLADA file. To minimize the total export file size, textures that are used in multiple COLLADA files—such as a repeated brick or window texture—are only exported once and are referenced by the applicable .dae files.
This tool automatically overwrites existing COLLADA files with the same file name. When this occurs, a warning message appears stating the files that were overwritten with a new file during the export process. A geoprocessing message is also generated for features that fail to export—for example, if the output location is read-only or the disk is full.
To ensure a new COLLADA file is created for all exported multipatch features, set the destination directory to an empty or new folder and choose a file name field that is unique for each feature. Exporting two features with the same attribute value will result in the second exported feature overwriting the COLLADA file of the first.
When iteratively updating a multipatch feature by exporting it to COLLADA and making changes outside of ArcGIS, export the feature to the same location each time. This will keep a single file on disk for that feature, representing the most up-to-date state of the 3D object.
If the exported multipatch is in a projected coordinate system, such as a building stored in a UTM zone, a .kml file containing the coordinates as WGS84 will also be created in the output folder. This process does not use a datum transformation, which may result in positional discrepancies when viewing the KML.
Tip:
When converting multipatches from a layer, the tool will automatically embed colors defined in the layer's renderer. For example, if the layer is rendering features based on a use-type attribute—such as red for commercial, blue for residential, and so on—these colors will be included in the output COLLADA files. The displayed color is applied to both textured and untextured multipatch features, with the former requiring an update to the feature's underlying texture files. You can use a single display color of white to export textured multipatches with unaltered images.
Parameters
arcpy.conversion.MultipatchToCollada(in_features, output_folder, {prepend_source}, {field_name}, collada_version)
Name | Explanation | Data Type |
in_features | The multipatch features to be exported. | Feature Layer |
output_folder | The destination folder where the output COLLADA files and texture image files will be placed. | Folder |
prepend_source (Optional) | Specifies whether the names of the output COLLADA files will be prepended with the name of the source feature layer.
| Boolean |
field_name (Optional) | The feature attribute that will be used as the output COLLADA file name for each exported feature. If no field is specified, the feature's Object ID will be used. | Field |
collada_version | Specifies the COLLADA version to which the files will be exported.
| String |
Code sample
The following sample demonstrates the use of this tool in the Python window.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.conversion.MultipatchToCollada("Sample.gdb/Buildings", "C:/COLLADA",
"PREPEND_SOURCE_NAME", "BldName")
The following sample demonstrates the use of this tool in a stand-alone Python script.
'''*********************************************************************
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))