包含模型构建器系统变量的行内变量替换示例

模型构建器可提供两个可在迭代工作流中使用的行内系统变量。这两个系统变量包含当前迭代次数和当前列表索引:%i% 是指列表变量中的当前列表位置(第一个位置为零),而 %n% 是指当前模型迭代(第一个迭代为零)。

将 %i% 系统变量与行内变量替换结合使用

对于针对输入列表运行进程的模型,每次运行进程时,输出的名称都会与上一次运行进程所得到的输出的名称相同,且上一次输出将会被覆盖。为避免在连续迭代过程中覆盖上一次的输出,可使用 %i% 追加输出的名称,从而为每个输出提供指示其在输入列表中的位置的唯一名称。

使用 %i%

将 %n% 系统变量与行内变量替换结合使用

%n% 提供当前模型的迭代次数,可在迭代模型中使用。在下例中,使用 For 迭代器对模型迭代四次。缓冲区工具的输出被用作输入反馈到此工具。模型进行迭代,并在每次迭代时创建新的输出。%n% 用于缓冲区工具的输出名称中,以便为每次迭代时的输出提供新名称。

使用 %n%

警告警告:

如果要将 %n% 用于模型参数的输出名称,则模型在 ArcMap 或 ArcCatalog 中通过其工具对话框进行运行,且应用程序的迭代次数将替代 %n%。由于应用程序的迭代次数 %n% 为 0,模型工具将在进行一次迭代后失败,并出现错误消息“错误 000622:执行(工具)失败。参数无效。”在这种情况下,必须更改变量以使其不再是模型参数,或从输出名称中移除 %n%

相关主题

5/10/2014