前提条件可用于显式控制模型中的运算顺序。例如,使第一个过程的输出成为第二个过程的前提条件可以让一个过程在另一个过程后运行。任何变量都可用作工具执行的前提条件,并且任何工具都可以有多个前提条件。
示例 1 - 将数据变量设置为前提条件
在这一示例中,两个独立但存在关联的过程会通过前提条件连接在一起,以便在一个过程执行后再执行下一过程。过程的第一步在新创建的文件地理数据库内创建新的要素数据集。第二个过程将要素类裁剪到研究区域,然后将输出写入新创建的要素数据集。
如果上述模型按原样执行,则无法控制运算顺序;裁剪工具甚至可能会在创建输出位置之前执行,这会导致错误。避免此类错误的一种方法是,首先右键单击该过程并选择运行来运行创建文件地理数据库和创建要素数据集过程,最后再裁剪过程。
然而,这种运行各个工具的方法只在“模型构建器”中有效。但如果模型必须在“模型构建器”外运行或您需要同时执行整个模型而不是逐个工具地执行,结果会如何?
前提条件可用于显式控制模型中的运算顺序。在下面的模型中,新的要素数据集变量是裁剪工具的前提条件。通过此操作,裁剪工具将在新要素数据集创建后才执行。
示例 2 - 将布尔变量设置为前提条件
在上述示例中,要素数据集变量被用作工具的前提条件。将布尔变量作为前提条件使用时,其行为与数据变量(如要素数据集或要素类)不同。对于布尔变量,“模型构建器”将读取其 TRUE 或 FALSE 值,而不是确定数据是否已被创建。如果值为 TRUE,则满足前提条件,相关工具会执行。如果值为 FALSE,则不满足前提条件,相关工具不会执行。在下例中,布尔变量 Run Model 被用作工具的前提条件。
使布尔前提条件变量成为模型参数以便在打开模型工具对话框时显示该变量。在工具对话框中,选中运行模型参数将变量设置为 TRUE,以使得执行模型时,模型内的相关过程(添加字段)也会执行。如果运行模型参数没有被选中,则布尔变量为 FALSE,由于不满足前提条件,执行模型时模型内的相关过程不会执行。如果不选中此参数,则运行模型时将发出警告消息:“过程未执行,因为前提条件为假。”
要了解有关创建不同类型的模型变量的详细信息,请参阅创建变量。
示例 3 - 将长整型变量设置为前提条件
当被设置为前提条件时,长整型变量与布尔变量的行为相同。如果长整型变量的值是一个正整数,则将其认定为真并且相关过程会执行。如果值为 0 或负值,则将其认定为假并且相关过程不会执行。