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

摘要

可从一种或多种 3D 文件格式导入 3D 模型并创建或更新 3D 对象要素图层。

使用情况

  • 3D 对象要素类提供了一种使用 3D 模型的本机渲染功能(例如灯光效果、反射率和材质)以在 ArcGIS AllSource 中存储、地理配准和可视化 3D 模型的方法。

    了解有关 3D 对象要素图层的详细信息

  • 3D 对象要素类的几何可用于任何支持多面体要素的地理处理工具。 例如,3D 对象要素图层可用于分析视线可见性中的视线,或确定太阳阴影频率太阳阴影体积中阴影的影响。

  • 使用此工具,您可以直接创建 3D 对象要素图层,而无需将 3D 模型导入多面体或使用 3D 对象要素图层功能增强多面体。 该工具还支持比导入 3D 文件工具更多的 3D 模型格式。 可以导入以下 3D 格式:

    • COLLADA (.dae)
    • 工程图(.dwg)
    • Autodesk Filmbox (.fbx)
    • 图形库传输(.glb)
    • JSON 图形库传输(.gltf)
    • 工业基础类(.ifc)
    • Wavefront 对象(.obj)
    • 通用场景描述(.usdc)
    • 压缩通用场景描述 (.usdz)
  • 创建 3D 对象要素类并且导入的模型具有空间参考时,3D 对象要素类将继承模型的坐标系。 如果您导入的模型没有坐标系,则输出的坐标系将为 WGS 1984 Web Mercator (WKID 3857),使用米的线性单位。 如果 3D 模型具有线性单位,其坐标将自动转换以匹配输出投影。 当 3D 模型没有定义线性单位时,可以使用比例因子参数来应用适当的转换。

参数

标注说明数据类型
输入 3D 文件和文件夹

将导入的 3D 文件或包含 3D 文件的文件夹。 提供文件夹后,将导入其中包含的所有受支持的 3D 模型及其子目录。

支持以下模型:

  • COLLADA (.dae)
  • 工程图(.dwg)
  • Autodesk Filmbox (.fbx)
  • 图形库传输(.glb)
  • JSON 图形库传输(.gltf)
  • 工业基础类(.ifc)
  • Wavefront 对象(.obj)
  • 通用场景描述(.usdc)
  • 压缩通用场景描述 (.usdz)
File; Folder
输出 3D 对象要素类

将创建或更新的 3D 对象要素图层。

Feature Layer
更新策略
(可选)

指定如何更新现有 3D 对象要素类。

  • 替换所有现有型号3D 对象要素类中的所有现有要素都将被删除,并且仅添加指定为输入的 3D 模型。
  • 仅更新现有模型3D 对象要素类中存在的 3D 模型将被更新。 新模型将被跳过。
  • 更新现有模型并添加新模型3D 对象要素类中存在的 3D 模型将被更新并附加新模型。 这是默认设置。
  • 添加所有型号将添加所有 3D 模型,而不替换 3D 对象要素类中当前存在的任何模型。
String
XY 偏移
(可选)

将应用于导入模型的 x 和 y 坐标偏移。

Point
高程偏移
(可选)

将应用于导入模型的高度偏移。

Double
比例因子
(可选)

将用于调整导入的 3D 模型大小的比例因子。

Double
旋转角度
(可选)

将应用于导入模型的旋转角度度数。 应用旋转时假设零度 (0°) 代表北,角度值按顺时针方向递增。

Double
如果未指定数据,则 Y 轴向上

指定 y 坐标是否被解释为高度或沿水平面。 仅 Wavefront 对象文件 (.obj) 支持此参数。

  • 选中 - Y 坐标将被解释为高度。 这是默认设置。
  • 未选中 - Z 坐标将被解释为高度。

Boolean

arcpy.management.Import3DObjects(files_and_folders, updated_features, {update}, {translate}, {elevation}, {scale}, {rotate}, y_is_up)
名称说明数据类型
files_and_folders
[files_and_folders,...]

将导入的 3D 文件或包含 3D 文件的文件夹。 提供文件夹后,将导入其中包含的所有受支持的 3D 模型及其子目录。

支持以下模型:

  • COLLADA (.dae)
  • 工程图(.dwg)
  • Autodesk Filmbox (.fbx)
  • 图形库传输(.glb)
  • JSON 图形库传输(.gltf)
  • 工业基础类(.ifc)
  • Wavefront 对象(.obj)
  • 通用场景描述(.usdc)
  • 压缩通用场景描述 (.usdz)
File; Folder
updated_features

将创建或更新的 3D 对象要素图层。

Feature Layer
update
(可选)

指定如何更新现有 3D 对象要素类。

  • REPLACE_ALL3D 对象要素类中的所有现有要素都将被删除,并且仅添加指定为输入的 3D 模型。
  • UPDATE_EXISTING3D 对象要素类中存在的 3D 模型将被更新。 新模型将被跳过。
  • UPDATE_EXISTING_ADD_NEW3D 对象要素类中存在的 3D 模型将被更新并附加新模型。 这是默认设置。
  • ADD_ALL将添加所有 3D 模型,而不替换 3D 对象要素类中当前存在的任何模型。
String
translate
(可选)

将应用于导入模型的 x 和 y 坐标偏移。

Point
elevation
(可选)

将应用于导入模型的高度偏移。

Double
scale
(可选)

将用于调整导入的 3D 模型大小的比例因子。

Double
rotate
(可选)

将应用于导入模型的旋转角度度数。 应用旋转时假设零度 (0°) 代表北,角度值按顺时针方向递增。

Double
y_is_up

指定 y 坐标是否被解释为高度或沿水平面。 仅 Wavefront 对象文件 (.obj) 支持此参数。

  • Y_IS_UPY 坐标将被解释为高度。 这是默认设置。
  • Z_IS_UPZ 坐标将被解释为高度。
Boolean

代码示例

Import3DObjects 示例(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

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 示例(工作流)

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

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)

相关主题