模型构建器具有在执行工具前了解相应工具如何更改数据的智能功能。此行为对加入某些更改数据的工具后继续构建工作流十分必要。对这种行为的最佳说明包括使用“添加字段”工具和“计算字段”工具,如下所示。如果使用“添加字段”工具添加一个新字段,则“添加字段”工具的输出变量将更新,以便包含该新字段。打开“计算字段”工具时将显示该新字段,即使尚未执行“添加字段”工具。这是指定“计算字段”工具的其他参数以及在未执行“添加字段”工具的情况下仍使模型工作流继续运行的必要条件。
虽然模型构建器能够在大多数工具执行前了解相应工具将对数据做出的更改,但仍有部分工具使模型构建器无法查看它们将创建的派生数据或值。这些情况下,执行相应工具前无法更新派生的输出数据以便包含所做更改。这样的数据被视为不完整的派生数据。
使用不完整的派生数据
如果某个过程创建了不完整的派生数据,但又必须使用此派生数据作为其他过程的输入,则可选择两种可行方法解决此局限性:
- 输入值 - 如果知道不完整的派生数据中丢失的特定更改内容,可在工具对话框的参数中手动输入各值。
- 运行过程 - 可在模型构建器中单独运行创建不完整的派生数据的过程。执行该过程后,将完善派生数据。
输入值
“创建表”工具会向新表添加字段 Field1,但该新字段不显示在可通过“删除字段”工具删除的字段列表中;因而“创建表”工具创建了不完整的派生数据。最终必须将 Field1 从表中删除,但该字段并未包含在可从表中删除的自动生成字段列表中。
- 由于执行“创建表”工具后知道 Field1 存在于表中,因此可使用“删除字段”工具对话框中的添加字段按钮手动将 Field1 添加到要删除的字段列表中。
- 将 Field1 添加到要删除的字段列表后,弹出一条警告,指示不存在 Field1。可忽略该警告,因为执行“删除字段”工具时将存在 Field1。
运行过程
- 可在模型构建器中运行单个过程,方法是选择工具,右键单击,然后单击运行。
一些创建不完整的派生数据的工具
从交换文件导入工具用于读取包含 coverage 数据的交换文件(.e00 文件)。执行工具前,该工具无法确定任何输出数据集字段名称、字段属性或几何类型。另外,转换工具箱中的许多其他工具也会创建不完整的派生数据。
所有脚本工具都将输出不完整的派生数据,设计有“工具验证程序”类而可以更新派生数据变量定义的脚本工具除外。要了解详细信息,请参阅自定义脚本工具行为。
“分割”工具用于在工作空间中创建新要素类,在执行之前并不了解将要创建的要素类数量或名称;因而这被视为不完整的派生数据。
“创建表”工具可根据表输出的类型(地理数据库、.dbf 或 INFO)自动添加某些字段,在执行之前并不了解将要添加的字段名称;因而这被视为不完整的派生数据。