导出 3D 对象 (数据管理)

摘要

将 3D 对象要素导出为一个或多个 3D 模型文件格式。

使用情况

  • 使用此工具将 3D 模型导出到不支持 3D 对象要素图层的其他软件中。 在导出模型之前,请查看支持的格式,确保生成的文件可用。

  • 当导出到具有多个标准化版本的 3D 模型格式时,将使用支持 3D 对象要素图层属性的最旧或最常用的文件格式版本,以确保最大的兼容性。

  • 导出的 3D 模型可以在专用 3D 模型编辑软件中进行修改,并使用导入 3D 对象工具将其转换回 3D 对象要素图层。 选择一个支持数据所需所有属性的模型格式,例如动画、材料、反射率和其他可视化效果。 如果导出的模型格式不支持原始 3D 对象要素图层中存在的某个属性,则导入的数据集可能与原始导出要素不匹配。

参数

标注说明数据类型
输入要素

将要导出的 3D 对象要素图层。

Feature Layer
目标文件夹

包含输出 3D 模型的现有目录。

Folder
要导出的 3D 格式

指定要导出的 3D 格式。

  • Collada (.dae)将导出 COLLADA 格式。
  • Autodesk Drawing (.dwg)将导出 DWG 格式。
  • Autodesk (.fbx)将导出 Autodesk FilmBox 格式。
  • Khronos Group glTF 二进制 (.glb)将导出二进制图形库传输格式。
  • Khronos Group glTF json (.gltf)将导出 JSON 图形库传输格式。
  • 工业基础类 (.ifc)将导出 Industry Foundation Classes 格式。
  • Wavefront (.obj)将导出 Wavefront 格式。
  • Universal Scene Description (.usdc)将导出 Universal Scene Description 格式。
  • Compressed Universal Scene Description (.usdz)将导出 Universal Scene Description 格式的压缩版本。
String
输出文件名字段
(可选)

输入要素属性表中包含用于每个输出模型的名称的文本字段。 如果未提供名称字段,输出模型将以输入要素的对象 ID 命名。

Field
覆盖输出文件夹

指定是否覆盖输出目录中的现有 3D 模型。

  • 选中 - 将覆盖输出目录中的现有 3D 模型。
  • 未选中 - 不会覆盖输出目录中的现有 3D 模型。 这是默认设置。
Boolean

派生输出

标注说明数据类型
输出文件夹

包含从输入要素导出的 3D 模型的文件夹。

Folder

arcpy.management.Export3DObjects(in_features, target_folder, formats, {name_field}, overwrite)
名称说明数据类型
in_features

将要导出的 3D 对象要素图层。

Feature Layer
target_folder

包含输出 3D 模型的现有目录。

Folder
formats
[formats,...]

指定要导出的 3D 格式。

  • FMT3D_DAE将导出 COLLADA 格式。
  • FMT3D_DWG将导出 DWG 格式。
  • FMT3D_FBX将导出 Autodesk FilmBox 格式。
  • FMT3D_GLB将导出二进制图形库传输格式。
  • FMT3D_GLTF将导出 JSON 图形库传输格式。
  • FMT3D_IFC将导出 Industry Foundation Classes 格式。
  • FMT3D_OBJ将导出 Wavefront 格式。
  • FMT3D_USDC将导出 Universal Scene Description 格式。
  • FMT3D_USDZ将导出 Universal Scene Description 格式的压缩版本。
String
name_field
(可选)

输入要素属性表中包含用于每个输出模型的名称的文本字段。 如果未提供名称字段,输出模型将以输入要素的对象 ID 命名。

Field
overwrite

指定是否覆盖输出目录中的现有 3D 模型。

  • OVERWRITE将覆盖输出目录中的现有 3D 模型。
  • NO_OVERWRITE不会覆盖输出目录中的现有 3D 模型。 这是默认设置。
Boolean

派生输出

名称说明数据类型
target_folder_out

包含从输入要素导出的 3D 模型的文件夹。

Folder

代码示例

Export3DObjects 示例(Python 窗口)

以下 Python 窗口脚本演示了如何使用 Export3DObjects 函数。

import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.management.Export3DObjects("city_models.gdb/Downtown_Buildings", "exported_models", 
                                ["FMT3D_DAE", "FMT3D_OBJ"], "Model_Name", "OVERWRITE")
Export3DObjects 示例(工作流)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

import arcpy
arcpy.env.workspace = 'C:/project_directory'

# Create a feature layer from the 3D Object feature class
feature_class = "city_models.gdb/Downtown_Buildings"
feature_layer = os.path.basename(feature_class)
arcpy.MakeFeatureLayer_management(feature_class, feature_layer)

# Select a subset of features to export
# The default OBJECTID field is used below to process a subset of features
object_ids = '1,5,10'
sql_query = f"OBJECTID IN ({object_ids})"
arcpy.management.SelectLayerByAttribute(feature_layer, "NEW_SELECTION", sql_query)

# Export the selected features to model files on disk
arcpy.management.Export3DObjects(feature_layer, "exported_models", ["FMT3D_GLB"])
arcpy.management.Delete(feature_layer)

相关主题