Import 3D Objects (Data Management)

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.

    Learn more about the 3D object feature layer

  • 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

LabelExplanationData 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:

  • 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)
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.

  • Replace All Existing ModelsAll existing features in the 3D object feature class will be removed and only the 3D models that are specified as input will be added.
  • Only Update Existing Models3D models that exist in the 3D object feature class will be updated. New models will be skipped.
  • Update Existing Models and Add New3D models that exist in the 3D object feature class will be updated and new models will be appended. This is the default.
  • Add All ModelsAll 3D models will be added without replacing any that currently exist in the 3D object feature class.
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).

  • Checked—Y coordinates will be interpreted as height. This is the default.
  • Unchecked—Z coordinates will be interpreted as height.

Boolean

arcpy.management.Import3DObjects(files_and_folders, updated_features, {update}, {translate}, {elevation}, {scale}, {rotate}, y_is_up)
NameExplanationData 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:

  • 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)
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.

  • REPLACE_ALLAll existing features in the 3D object feature class will be removed and only the 3D models that are specified as input will be added.
  • UPDATE_EXISTING3D models that exist in the 3D object feature class will be updated. New models will be skipped.
  • UPDATE_EXISTING_ADD_NEW3D models that exist in the 3D object feature class will be updated and new models will be appended. This is the default.
  • ADD_ALLAll 3D models will be added without replacing any that currently exist in the 3D object feature class.
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).

  • Y_IS_UPY coordinates will be interpreted as height. This is the default.
  • Z_IS_UPZ coordinates will be interpreted as height.
Boolean

Code sample

Import3DObjects example (Python window)

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)
Import3DObjects example (workflow)

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)

Related topics