摘要
计算多面体要素的交集,以便生成包含重叠体积的闭合多面体,根据公共表面积生成非闭合多面体要素,或根据相交边生成线要素。
插图
用法
确定用于此分析的数据时务必谨慎。高度详细的要素会产生极其复杂的几何,由于它们的折点总数和方向,可能会导致出现显示性能问题。
如果只提供了一个输入要素,将会计算该多面体数据集中各要素的相交情况,如果提供了两个要素,将会确定这两个数据集的要素的相交部分,同时忽略那些只存在于一个输入中相交情形。
语法
Intersect3D_3d (in_feature_class_1, {in_feature_class_2}, out_feature_class, {output_geometry_type})
参数 | 说明 | 数据类型 |
in_feature_class_1 | 要相交的多面体属性。当只提供一个输入要素图层或要素类时,输出将表示其自身要素的交集。 | Feature Layer |
in_feature_class_2 (可选) | 与第一个多面体要素图层或要素类相交的第二个多面体要素图层或要素类(可选)。 | Feature Layer |
out_feature_class | 将由此工具生成的要素类。 | Feature Class |
output_geometry_type (可选) | 确定创建的相交几何的类型。
| String |
代码实例
3D 相交 (Intersect3D) 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
from arcpy import env
env.workspace = 'C:/data'
arcpy.Intersect3D_3d('inMultipatch1.shp', 'outMultipatch.shp',
'inMultipatch2.shp')
3D 相交 (Intersect3D) 示例 2(独立脚本)
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''****************************************************************************
Name: Intersect3D Example
Description: This script demonstrates how to use the
Intersect3D tool
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inMP1 = 'Boston_MP_Small.shp'
inMP2 = 'Boston_MP.shp'
# Ensure output has a unique name
outMP = arcpy.CreateUniqueName('Intersect.shp')
# Execute Intersect 3D
arcpy.Intersect3D_3d(inMP1, outMP, inMP2)
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)