ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

了解脚本工具中的验证

  • 验证的工作原理

您可为脚本工具对话框提供自定义行为,如启用和禁用参数、提供默认值和更新字符串关键字等。通过添加 Python 代码,您可以进行以下操作:

  • 根据其他参数中包含的值来启用或禁用参数。

    启用和禁用参数

  • 更新参数过滤器。您可以使用字段过滤器来创建 Long 和 Double 等有效字段类型列表。借助字符串过滤器,您可以设置有效关键字的列表,如下所示。共有六种过滤器类型:值列表、范围、要素类、文件、字段和工作空间。

    动态字符串域

  • 提供参数的默认值,如栅格的像元大小。

    默认值

  • 出现在该对话框上的自定义警告和错误消息。

    错误消息

  • 将参数放置在不同的类别中。

    参数类别

  • 更新在模型构建器中使用的输出数据集的描述。

    更新输出描述

验证的工作原理

验证通过 Python 代码块执行,地理处理使用此代码块来控制工具对话框和 Python 窗口如何根据用户输入发生变化。系统工具(Esri 提供的工具)能够对用户输入作出响应,然后按照上述说明对工具对话框进行修改。

验证

验证是指检查所有工具参数是否正确,并在发现错误参数时提供有用的消息。验证由以下两部分组成:

  • 用户添加的代码。
  • 由 ArcGIS 中的地理处理功能执行的自动内部验证(或基本验证)。

内部验证执行以下操作:

  • 对于必填参数,检查该参数是否为空(未输入任何内容);如果为空,则在工具对话框上指示需要该值(使用绿色点而非红色 X)。
  • 检查用户输入的值的类型是否正确(例如,栅格而非要素类,或字母字符而非数字)。
  • 检查过滤器成员资格。即,如果您具有包含 RED、ORANGE 和 YELLOW 等关键字的值列表过滤器,但输入的是 BLUE,则您将收到一条错误消息,因为 BLUE 不在值列表过滤器中。
  • 检查输入数据集是否存在。
  • 生成输出数据集的默认目录路径。
  • 根据特殊对象、方案中包含的一组规则更新输出数据的描述。
  • 使用覆盖输出地理处理选项检查输出数据集是否存在。如果数据集存在,且该选项为 false,将出现一条错误;否则,将显示一条警告。
  • 如果参数的数据类型为“字段”,则确认该字段是否存在于关联表中。
  • 检查并确保输出数据集与输入数据集不同(除非输出是派生值,如添加字段)。
  • 对于包含线性和面积单位数据类型的参数,通过在 ArcMap 中检查相应值来设置它们的默认值(如果在 ArcMap 中运行)。
  • 如果输出是 coverage、格网或 INFO 表,则检查这些数据集的文件名长度是否超过 13 个字符。

内部验证不执行以下操作(但您可以通过您自己的验证代码完成):

  • 根据与其他参数的交互作用更新过滤器。例如,如果您的用户在第一个参数中输入了一个点要素类,则您将需要工具对话框在第三个参数中显示 RED、ORANGE 和 YELLOW。如果输入了面要素类,则需要在第三个参数中显示 BLUE、INDIGO 和 VIOLET。
  • 启用或禁用参数。
  • 计算默认值。
  • 执行任何特定于工具的参数交互。

您所添加的代码按如下方式与内部验证配合工作:

  • 您可以提供一组规则,以供内部验证用于更新输出数据集的描述。这些规则包含在方案对象中。
  • 您可在进行内部验证开始之前更新过滤器。根据上述示例,如果输入了点要素类,则更新过滤器以包含 RED、ORANGE 和 YELLOW。内部验证会根据过滤器中的值对输入的值进行检查。

如前文所述,您可以通过验证代码来计算默认值、启用和禁用参数以及自定义消息。此类操作不会影响内部验证的结果,只会影响工具对话框的外观。

相关主题

  • 自定义脚本工具行为
  • 自定义 Python 工具箱中的工具行为

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明