导入 3D 文件 (3D Analyst)
摘要
将一个或多个 3D 模型导入到多面体要素类。
用法
-
支持的格式包括:3D Studio Max (*.3ds)、VRML 和 GeoVRML 2.0 (*.wrl)、SketchUp 6.0 (*.skp)、OpenFlight 15.8 (*.flt) 和 billboards(PN、JPEG、BMP、TIFF、GIF 等)格式。
-
GeoVRML 是唯一拥有已定义坐标系的格式。其他格式则会使用本地坐标系(也就是说,中心位于 0,0,0)。在后一种情况中,需要对输出 shape 进行地理配准。
-
当输入多个文件时,首个文件的坐标系会被用于所有文件。对于除 GeoVRML 以外的所有格式来说,坐标系数将为未知。
-
将输出要素类放置在地理数据库中来保存纹理(映射到几何面上的影像)。
-
如果输出多面体通过它们面向侧面的顶端进行了定向,则再次尝试通过将 Y_Is_Up 参数设置为 true(选中)使用此工具来调整定向。
-
VRML 文件不支持的几何类型包括方框、圆锥、圆柱、拉伸、点集、球体和文本。
-
3D 文件中可能存在的点几何和线几何在输出多面体要素类中不会保留,因为多面体不支持它们。
语法
参数 | 说明 | 数据类型 |
in_files |
一个或多个输入文件或文件夹,其中带有以支持格式存储的数据。支持的格式包括 3D Studio Max (*.3ds)、SketchUp (*.skp)、VRML 和 GeoVRML (*.wrl) 以及 OpenFlight (*.flt)。 | File; Folder |
out_feature_class |
要创建的输出多面体要素类。 | Feature Class |
root_per_feature (可选) |
指明是为每个文件生成一个要素还是为文件中的每个根结点生成一个要素。
| Boolean |
spatial_reference (可选) |
输入数据的坐标系。默认情况下,从列表中的第一个文件获取。对于大多数格式来说,这是未知的。只有 GeoVRML 格式使用的坐标系是已知的。 | Spatial Reference |
y_is_up (可选) |
对输入坐标系的垂直定向。
| Boolean |
file_suffix (可选) |
The suffix of the files to import from an input folder. This parameter is required when a folder is specified as input. | String |
代码示例
The following sample demonstrates the use of this tool in the Python window:
import arcpy from arcpy import env arcpy.CheckOutExtension("3D") env.workspace = "C:/data" arcpy.Import3DFiles_3d("AddisSheraton.skp", "Test.gdb/AddisSheraton", False, "", False)
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''**************************************************************************** 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 from arcpy import env # Obtain a license for the ArcGIS 3D Analyst extension arcpy.CheckOutExtension("3D") # Set environment settings env.workspace = "C:/data" try: # 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." except: # Returns any other error messages print arcpy.GetMessages(2) del arcpy, OpenFlightList, CS, outputFC