Label | Explanation | Data Type |
Input 3D Files and Folders
| The 3D files or folders containing 3D files that will be imported. When a folder is provided, all supported 3D models contained in it and its subdirectories will be imported. The following models are supported:
| File; Folder |
Output 3D Object Feature Class
| The 3D object feature layer that will be created or updated. | Feature Layer |
Update Strategy
(Optional) | Specifies how an existing 3D object feature class will be updated.
| String |
XY Offset
(Optional) | The x- and y-coordinate offset that will be applied to the imported models. | Point |
Elevation Offset
(Optional) | The height offset that will be applied to the imported models. | Double |
Scale Factor
(Optional) | The scale factor that will be used to resize the 3D models being imported. | Double |
Rotation Angle
(Optional) | The degree rotation angle that will be applied to the imported models. Rotation is applied with the assumption of zero degrees (0°) representing north and angular values incrementing in the clockwise direction. | Double |
Y is up if unspecified by data
| Specifies whether y coordinates will be interpreted as height or along the horizontal plane. This parameter is only supported for Wavefront Object files (.obj).
| Boolean |
Summary
Imports 3D models from one or more 3D file formats and creates or updates a 3D object feature layer.
Usage
The 3D object feature class provides a way to store, georeference, and visualize 3D models in ArcGIS AllSource using their native rendering capabilities, such as light effects, reflectance, and materials.
The geometry of a 3D object feature class can be used in any geoprocessing tool that supports multipatch features. For example, a 3D object feature layer can be used to analyze sight lines in Line Of Sight and Intervisibility, or determine the impact of shadows in Sun Shadow Frequency and Sun Shadow Volume.
Using this tool, you can create 3D object feature layers directly without having to import the 3D models into a multipatch or enhance the multipatch with 3D object feature layer capabilities. This tool also supports more 3D model formats than the Import 3D Files tool. The following 3D formats can be imported:
- COLLADA (.dae)
- Drawing (.dwg)
- Autodesk Filmbox (.fbx)
- Graphics Library Transmission (.glb)
- JSON Graphics Library Transmission (.gltf)
- Industry Foundation Class (.ifc)
- Wavefront Object (.obj)
- Universal Scene Description (.usdc)
- Compressed Universal Scene Description (.usdz)
When a 3D object feature class is created and the models being imported have a spatial reference, the 3D object feature class will inherit the coordinate system of the models. If the models you are importing do not have a coordinate system, the output's coordinate system will be WGS 1984 Web Mercator (WKID 3857), which uses a linear unit of meters. If the 3D models have a linear unit, its coordinates will be automatically converted to match the output projection. When the 3D models do not have linear units defined, the Scale Factor parameter can be used to apply the appropriate conversion.
Parameters
arcpy.management.Import3DObjects(files_and_folders, updated_features, {update}, {translate}, {elevation}, {scale}, {rotate}, y_is_up)
Name | Explanation | Data Type |
files_and_folders [files_and_folders,...] | The 3D files or folders containing 3D files that will be imported. When a folder is provided, all supported 3D models contained in it and its subdirectories will be imported. The following models are supported:
| File; Folder |
updated_features | The 3D object feature layer that will be created or updated. | Feature Layer |
update (Optional) | Specifies how an existing 3D object feature class will be updated.
| String |
translate (Optional) | The x- and y-coordinate offset that will be applied to the imported models. | Point |
elevation (Optional) | The height offset that will be applied to the imported models. | Double |
scale (Optional) | The scale factor that will be used to resize the 3D models being imported. | Double |
rotate (Optional) | The degree rotation angle that will be applied to the imported models. Rotation is applied with the assumption of zero degrees (0°) representing north and angular values incrementing in the clockwise direction. | Double |
y_is_up | Specifies whether y coordinates will be interpreted as height or along the horizontal plane. This parameter is only supported for Wavefront Object files (.obj).
| Boolean |
Code sample
The following sample demonstrates the use of this tool in the Python window.
import arcpy
arcpy.env.workspace = 'C:/project_directory'
arcpy.management.Import3DObjects("import_models",
"city_models.gdb/Downtown_Buildings",
update="ADD_ALL", translate="50 100.5",
elevation=-52.73, scale=0.3048, rotate=15.25)
The following sample demonstrates the use of this tool in a stand-alone Python script.
import arcpy
arcpy.env.workspace = 'C:/project_directory'
# Export the feature class or layer to model files on disk
arcpy.management.Export3DObjects("city_models.gdb/Downtown_Buildings",
"exported_models", ["FMT3D_IFC"])
# Optionally, edit the exported model files in other software, or replace the
# files with a new version.
# Keep the file names the same to update existing features. New file names are
# interpreted as new features.
# The input folder and feature class or layer in Import 3D Objects are the same
# values used in Export 3D Objects.
arcpy.management.Import3DObjects("exported_models",
"city_models.gdb/Downtown_Buildings",
update="UPDATE_EXISTING_ADD_NEW",
translate="350 150",
elevation=100, scale=2.54, rotate=-90)