行内模型变量替换的示例
通过将变量名称用百分号括起 (%variable name%),可将模型中的任何变量用作变量替换。本主题列举了多个在模型构建器中使用行内模型变量替换的示例。
示例 1
在下方的模型中,工作空间变量 Data Workspace 的值为 C:\Data.gdb。通过将此变量名称用百分号括起,此工作空间位置将被替换为 Project 工具参数中的行内变量。运行时,将使用实际变量值 C:\Data.gdb 替换 %Data Workspace%。
示例 2
迭代器迭代要素类运行时,它将为要素类的路径和名称各创建一个输出变量。可以使用名称变量中的值构造投影的要素类的路径。工具执行时,%Name% 将被替换为要素类的名称。
示例 3
Parcel ID 是在运行模型工具时指定的一个模型参数。此变量将以 "Parcel" = '%Parcel ID%' 的形式在 Select Layer By Attribute 工具的表达式参数中使用。工具运行时,%Parcel ID% 将被替换为宗地 ID(在下方示例中此 ID 为 9),并且仅那些 ID 为 9 的宗地将被选择。
示例 4
此模型包含两个变量:Number of Residents 和 Waste Per Person Per Year。通过将这些变量用百分号括起,可在 Calculate Value 工具表达式中使用它们。运行计算值工具时,变量名称将被替换为所指定的值,且此工具会将这两个值相乘以计算每年的总废物量。
示例 5
Miles to Meter 是模型中的一个变量,此变量包含从英里转换为米所使用的转换因子 (1,609.344)。输入变量具有一个字段值以英里为单位的距离字段。Calculate Field 工具将使用此距离字段中的值(以英里为单位)乘以转换因子,从而生成以米为单位的距离值。Calculate Value 工具的表达式为 Miles * %Miles to Meter%。运行工具时,%Miles to Meter% 将被替换为 1609.344。
示例 6
以下示例显示的是在模型中使用行内变量替换的不正确方式以及如何更正此问题。
Input 变量包含值 C:\ToolData\Road.shp。如果以 C:\Scratch\%Input% 的形式用作输出名称中的行内变量替换,工具将报错。造成此错误的原因是 Input 变量包含数据集的路径、名称和扩展名,这样,替换的值将为 C:\Scratch\C:\ToolData\Road.shp,这是一个无效的路径。要正确处理这种情况,请使用解析路径工具将完整路径分成多个组成部分,然后将数据集名称(位于名称变量中)用于行内变量替换。