描述
将一个或多个 3D 模型导入到多面体要素类。
使用方法
通过在地理数据库中存储输出多面体保留 3D 模型的纹理。Shapefile 不支持保留纹理。
如果生成的多面体要素的顶侧定向到侧面,可再次使用此工具通过启用 Y Is Up 参数来尝试调整方向。
GeoVRML 是唯一拥有已定义坐标系的格式。使用局部坐标系(XYZ 轴坐标中心定义在 0,0,0 处)可生成多种 3D 模型。可采用以下方法之一将此类要素配准到实际坐标:
- 如果需要旋转和平移 3D 模型,可以考虑执行空间校正技术来正确定位要素。
- 如果 3D 模型在给定坐标系中已正确定向,且仅需平移至正确位置,可考虑自定义坐标系属性来进行所需的平移。如果可以获得用来定义实际坐标中每个模型的质心位置的点要素,则可考虑使用导入 3D 文件工具直接输入这些点以校准模型。
3D 文件中可能存在的点几何和线几何在输出多面体要素类中不会保留,因为多面体不支持它们。
注:
VRML 文件不支持的几何类型包括方框、圆锥、圆柱、拉伸、点集、球体和文本。
语法
arcpy.3d.Import3DFiles(in_files, out_featureClass, {root_per_feature}, {spatial_reference}, {y_is_up}, file_suffix, {in_featureClass}, {symbol_field})
参数 | 说明 | 数据类型 |
in_files [in_files,...] | 一个或多个 3D 模型或文件夹,支持的文件格式为 3D Studio Max (*.3ds)、VRML 和 GeoVRML (*.wrl)、OpenFlight (*.flt)、COLLADA (*.dae) 以及 Wavefront OBJ 模型 (*.obj)。 | File; Folder |
out_featureClass | 从输入文件中创建的多面体。 | Feature Class |
root_per_feature (可选) | 指明是为每个文件生成一个要素还是为文件中的每个根结点生成一个要素。此选项仅适用于 VRML 模型。
| Boolean |
spatial_reference (可选) | 输入数据的坐标系。对于大多数格式来说,这是未知的。只有 GeoVRML 格式存储其坐标系,其默认值将从列表中的第一个文件获得,除非在此处指定一个空间参考。 | Spatial Reference |
y_is_up (可选) | 标识定义输入文件垂直方向的轴。
| Boolean |
file_suffix | 从输入文件夹导入的文件的文件扩展名。将至少一个文件夹指定为输入时,此参数为必填项。
| String |
in_featureClass (可选) | 其坐标定义输入文件实际位置的点要素。每个输入文件将与基于符号字段中存储的文件名的对应点相匹配。应将坐标系参数定义为与点的空间参考相匹配。 | Feature Layer |
symbol_field (可选) | 点要素中的字段,包含与各点相关联的 3D 文件的名称。 | Field |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = "C:/data"
arcpy.Import3DFiles_3d("AddisSheraton.skp", "Test.gdb/AddisSheraton", False, "", False)
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''****************************************************************************
Name: Import3DFiles Example
Description: This script demonstrates how to use the
ListFiles method to collect all OpenFlight (*.flt) models in a
workspace as input for the Import3DFiles tool.
****************************************************************************'''
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set Local Variables
OpenFlightList = arcpy.ListFiles("*.flt")
CS = "Coordinate Systems/Geographic Coordinate Systems/World/WGS 1984.prj"
outputFC = "Test.gdb/OpenFlight_Models"
if len(OpenFlightList) > 0:
# Execute Import3DFiles
arcpy.Import3DFiles_3d(OpenFlightList, outputFC, False, CS, False)
else:
# Returned if there are no flt files in the target workspace
print("There are no OpenFlight files in the " + env.workspace + " directory.")
许可信息
- Basic: 需要 3D Analyst
- Standard: 需要 3D Analyst
- Advanced: 需要 3D Analyst