ArcGis Pro Python工具箱教程 03 工具箱中工具自定义

用于定义工作工具类的方法

工具方法

必选或可选

描述

__ init __

必需项

right-aligned 初始化工具类。

getParameterInfo

可选

定义工具的参数。

isLicensed

可选

返回工具是否获得执行许可。

updateParameters

可选

在用户每次在工具对话框中更改参数时调用。 从 updateParameters 返回后,地理处理将调用它的内部验证例程。

updateMessages

可选

在从内部验证例程返回后调用。 可以检查根据内部验证创建的消息,并根据需要对其进行更改

execute

必需项

工具的源代码。

postExecute

可选

当 execute 方法完成,然后处理输出并将其添加到显示后调用。

可在工具的 init 方法中设置以下属性:

属性

描述

category

工具所在的工具集的名称。 可通过工具集组织工具箱内的工具。

description

工具的描述。

label

标注是工具的显示名称,如地理处理窗格中所示。

class DaoMingyuan\_GIS: # 工具名称由类本身的名称确定
    def \_\_init\_\_(self):# 定义工具 
        self.label =  DaoMingyuan\_GIS"# 工具的显示名称        
        self.description = 
        self.category = "00-工具简介"# 工具集的名称
getParameterInfo 定义工具的参数

几乎所有工具都具有参数,可在工具对话框或脚本中设置参数值。 运行工具时,会将参数值发送到该工具的源代码。 该工具将读取这些值并相应地对其进行处理。
  在 Python 工具箱 (.pyt) 中,通过创建 Parameter 对象并设置其属性在工具类的 getParameterInfo 方法中定义工具参数。

属性

描述

displayName

地理处理窗格中显示的参数名称。

name

在 Python 的工具语法中显示的参数名称。

datatype

每个 Python 工具箱的工具参数都有关联的数据类型。 打开地理处理窗格后,将使用该数据类型来检查参数值。数据类型也可用于浏览数据 - 仅与参数数据类型匹配的数据才会显示在浏览对话框中。要获取参数数据类型的列表,请参阅 Python 工具箱中的参数数据类型。

parameterType

以下为 parameterType 的选项:   Required - 在提供值之前,该工具无法运行。  Optional - 无需为参数提供值。  Derived - 该参数仅适用于输出参数(请参阅以下 direction 属性)。 派生的输出参数不会显示在工具对话框中。

direction

此属性定义参数是工具的输入还是工具的输出。选项为输入输出。 如果 parameterType 设置为 Derived,请将 direction 设置为 Output。

def getParameterInfo(self):# 定义工具参数
        param0 = arcpy.Parameter(# 第一个工具
            category = "单一工具",# 工具类别 用于分类脚本里面的用途
            displayName="添加要素图层",# 地理处理窗格中显示的参数名称
            name="in\_GPFeatureLayer",# 在 Python 的工具语法中显示的参数名称
            datatype="GPFeatureLayer",# 对要素类的引用,包括符号系统和渲染属性 每个 Python 工具箱的工具参数都有关联的数据类型 打开地理处理窗格后 将使用该数据类型来检查参数值 请参阅 Python 工具箱中的参数数据类型
            parameterType="Required",# Required - 在提供值之前,该工具无法运行 Optional - 无需为参数提供值 Derived - 该参数仅适用于输出参数(请参阅以下 direction 属性)派生的输出参数不会显示在工具对话框中
            direction="Input")#此属性定义参数是工具的输入还是工具的输出 选项为输入和输出 如果 parameterType 设置为 Derived,请将 direction 设置为 Output

        param1 = arcpy.Parameter(
            category = "单一工具",# 工具类别 用于分类脚本里面的用途
            displayName="添加字段",
            name="in\_Field",
            datatype="Field",#表中的列 用于存储单个属性的值
            parameterType="Required",
            direction="Input")