使用模型构建器创建工具快速浏览

以下显示的模型假定您正在为特定研究区域(在模型中以 StudyArea 变量表示)组合数据,并且需要根据研究区域来裁剪几个数据集。对于裁剪的每个数据集,您需要添加一个名为 STATUS 的字段,并基于初始值 1 来计算该字段。实际上,您可能需要添加多个字段并计算它们的值,但是对于这个简单情景,STATUS 字段就足以满足要求。

以下模型将执行的操作有裁剪、添加字段以及计算该字段,但是需要组合的数据分布在多个地图文档和地理数据库中。您面临的工作流问题是:每次运行该模型时,都必须在“模型构建器”中打开此模型,然后将 Clip 的输入从 Soils 更改为其他数据集。

示例模型

与其每次处理数据集时都要打开“模型构建器”,不如就像使用系统工具一样,使用模型的工具对话框来运行模型,并通过将图层或数据集拖到该对话框中来提供输入数据集的名称。但是,当打开此工具对话框时,会显示此工具没有参数(如下图所示),因此无法输入想要处理的数据集。

模型工具对话框

该模型的另一个问题是它不能在其他模型中使用。下图显示了将该工具添加到新模型中,以便将该模型的输出连接到标识工具。但由于 Clip to study area and add field 工具没有可连接到标识工具的输出,因此无法建立连接。

由于该模型工具没有输出参数,因此不能在其他模型中使用。

解决方案 - 创建模型参数

以上两种情况都可通过创建模型参数来解决。要创建模型参数,请右键单击模型变量,然后选择模型参数。在下图中,变量 SoilsSoils_Clip (3) 已变为模型参数。模型参数以变量旁显示字母 P 的方式表示。

带有模型参数变量的模型

现在,打开模型工具对话框时,可以将土壤参数改为其他内容,如植物数据集或图层。还可以提供一个其他输出数据集名称。单击确定时,此工具将使用所提供的数据运行。

显示了参数的工具对话框

请注意,模型变量 StudyArea 并没有成为参数。因为研究区域始终不变,所以不必将其变为参数。

开始行动开始行动:
在此模型中,StudyArea 变量包含一个数据集 (D:\EastValley\Data\collect.gdb\studyarea) 而不是一个图层名称。如果 StudyArea 变量包含图层名称,则该工具将不在后台执行;您需要按照前台处理和后台处理中所述那样禁用后台处理。

更改参数名称

此工具对话框存在一个问题 - 参数名称的描述性不强;除了土壤Soils_Clip (3) 参数名称外,还需要一些描述性更强的内容,如输入要素输出要素类。要更改此工具对话框中的参数名称,可在“模型构建器”中更改变量的名称,如下图所示。

参数已经过重命名的模型

现在,打开此工具对话框时,参数的名称将变得很有意义:

参数已经过重命名的工具对话框

将参数留空

最后,请注意,此工具对话框中的参数是预先填充值的,例如,SoilsE:\10DocModels\PortlandSmall.gdb\Soils_Clip。如果在 ArcMap 中打开该工具,但没有名为 Soils 的图层,则该对话框将显示错误(红色 X),因为图层 Soils 不存在。虽然这并不是问题,因为您可以随时选择其他图层或浏览查找其他数据集,但可通过清除模型中的变量来避免出现错误消息,如下图所示。此模型将不再在“模型构建器”中运行,但是它将使用自身的工具对话框运行。

变量为空的模型

现在,由于模型变量为空,此工具对话框将不再显示任何值。

参数值为空的工具对话框

在其他模型中使用此模型工具

由于模型具有参数,因此可以将其添加到“模型构建器”并将其输出连接到 Identity 的输入,如下图所示。

在模型中使用模型。

摘要

要使模型成为可用的工具,可以创建模型参数。模型参数显示在工具对话框中。模型变量的名称会成为工具对话框中的参数名称。不必将每个模型变量都变为模型参数;在以上示例中,由于 StudyArea 变量从不需要更改,因此它不是模型参数。

通过创建模型参数,可以将模型变为有用的工具 - 可对此工具使用不同的数据、将此工具添加到其他模型中,并且还可在脚本中使用此工具。随着时间的推移,您将建立起一个包含有用工具的库,并将它们用在最初创建模型时从未预料到的情况下。同样重要的是,您还可以将较大的复杂模型分割成较小的模型(因而更易于管理),并将其中一个工具的输出作为另一个工具的输入。

要了解有关创建模型工具的详细信息,请参阅使用模型构建器创建工具的教程

5/10/2014