操作方法
在某些情况下,使用要素集运行模型时,需要输入用户创建的交互式要素。 问题在于,模型的创建者通常希望限制用户的输入数量,使其不超出要求的最小或最大输入数量。
此解决方案不会通过错误弹出窗口或警告来阻止用户选择超出 要求的最小或最大输入数量,而是在没有输出的情况下运行模型。
在示例场景中,用户在其模型中已拥有一个使用要素集的模型,该模型通过使用要素集(新学校位置)的交互功能添加位置来附加学校要素类(现有学校),模型创建者希望限制模型用户一次输入的点不能超过两个。
以下是 完成的模型 - 此处使用示例数据为例,仅需 获取计数 和 计算值 部分。
由于 要素集 (因为其为工具的输入)已经是要修改的模型的一部分:
表达式:
countRows("%rowcount%")
代码块(可选):
def countRows(RowCount): import arcpy if %RowCount% == 2: # feature restriction number return "true" else: return "false"
简言之,这段代码着眼于 获取计数 工具的输出(即添加到内存表的行;如果添加一个要素,则为 1 行;如果添加两个要素,则为 2 行,依此类推)。 对于当前情景, 我们使用值 2, 由此当模型用户单击两个 新的学校位置时,该工具将在内存表中创建两个要素。 (由于您的环境/模型参数/等可能具有不同的要求,因此上述情景可能会有所不同。 此模型使用了点要素,而您可能正在使用线要素。)
运行时,该工具 仅在您选择了两个点时正常工作。 否则,该工具 提供一条信息性消息,指示: “由于前提条件为 false,因此未执行进程。”
当未满足“计算值”工具的 IF 语句时,将创建错误前提条件,这意味着输入的选项并非 两个。
无论用户是否选择所需的输入量,该模型都会运行为 “已完成”, 因为“计算值”工具将输出一个布尔值,即 true 或 false。
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序