3D 线与多面体(Multipatch)相交 (3D Analyst)

摘要

计算输入线及多面体 (multipatch) 要素的几何交集,并返回交点数。交点和/或线(由在交点处断开的输入线得到)可选择性地写入输出要素类。

了解有关“3D 线与多面体 (Multipatch) 相交(3D 分析)”工作原理的详细信息

插图

用法

语法

Intersect3DLineWithMultiPatch_3d (in_line_features, in_multipatch_features, {join_attributes}, {out_point_feature_class}, {out_line_feature_class})
参数说明数据类型
in_line_features

输入线要素类或图层。

Feature Layer
in_multipatch_features

输入多面体 (multipatch) 要素类或图层。

Feature Layer
join_attributes
(可选)

允许输入线要素类中的所有非必需字段(即,非 ObjectID 或几何)及数值复制到可选输出线要素类。

  • IDS_ONLY 不会将输入线要素类中的任何属性写入到输出线性要素类。这是默认设置。
  • ALL将输入线要素类中的所有属性写入到输出线性要素类。
String
out_point_feature_class
(可选)

在其中放置交点的可选要素类。

Feature Class
out_line_feature_class
(可选)

在其中放置线(交点处断开的输入线)的可选要素类。

Feature Class

代码示例

3D 线与多面体 (Multipatch) 相交示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 3D 线与多面体 (Multipatch) 相交函数。

import arcpy
from arcpy import env

arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Intersect3DLineWithMultiPatch_3d('inLine.shp', 'inMultipatch.shp', 
                                     'IDS_ONLY', 'outPts.shp', 'outLine.shp')
3D 线与多面体 (Multipatch) 相交示例 2(独立脚本)

以下 Python 脚本演示了如何在独立脚本中使用 3D 线与多面体 (Multipatch) 相交函数。

'''****************************************************************************
Name: Intersect3DLineWithMultiPatch Example
Description: This script demonstrates how to
             use the Intersect3DLine 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
    inLineFC = 'sample.gdb/lines_3d'
    inMP = 'sample.gdb/test_MP'
    # Ensure a unique name is produced for output files
    outPoint = arcpy.CreateUniqueName('OutPt_3DIntersect', 'sample.gdb')
    outLine = arcpy.CreateUniqueName('OutLine_3DIntersect', 'sample.gdb')
    
    # Execute Intersect 3D Line with Multipatch
    arcpy.Intersect3DLineWithMultiPatch_3d(inLineFC, inMP, 'IDS_ONLY', 
                                        outPoint, outLine)

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)

环境

相关主题

许可信息

ArcView: 需要 3D Analyst
ArcEditor: 需要 3D Analyst
ArcInfo: 需要 3D Analyst

7/10/2012