在 模型构建器 中使用逻辑工具的示例

“如果数据已存在”工具

以下示例使用如果数据已存在工具检查模型参数中的输入要素是否存在。 如果数据已存在工具有两个布尔输出:TrueFalse。 如果输入存在,则 True 输出变量和前提条件将设置为 true,从而允许计算字段工具运行。 如果 False 输出变量为 true(意味着数据不存在),则模型将创建其他数据集的副本,并使用此替代数据集作为输入来运行计算字段工具。

ModelBuilder 中的“如果数据已存在”工具

如果数据已存在工具

以下示例使用如果字段已存在工具检查数据集中是否已存在给定名称的字段。 如果字段已存在工具有两个布尔输出:TrueFalse。 如果字段不存在于输入数据集中,则 False 输出变量和前提条件将设置为 true,从而允许添加字段工具运行。 如果 True 输出变量为 true(意味着该字段确实存在),则模型将结束,因为没有工具连接到 True 分支。

ModelBuilder 中的“如果字段已存在”工具

如果选择已存在工具

以下示例使用如果选择已存在工具检查输入是否具有任何所选要素,如果有,则检查所选要素的数量。 首次运行按属性选择图层后,将使用如果选择已存在如果选择已存在工具有两个布尔输出:TrueFalse。 如果输入具有任何所选要素,则 True 输出变量和前提条件将设置为 true,从而允许汇总统计数据工具运行。 如果 False 输出变量为 true(意味着未选择任何要素),则模型将结束,因为没有工具连接到 False 分支。

ModelBuilder 中的“如果选择已存在”工具

如果坐标系为工具

以下示例使用 模型构建器 中的如果坐标系为工具检查数据集是否具有特定坐标系。 如果坐标系为工具有两个布尔输出:TrueFalse。 该模型将迭代地理数据库中的要素类,并检查各个要素类是否具有特定的投影坐标系。 如果各个要素类没有指定的坐标系,则 False 输出变量和前提条件将设置为 true,从而允许投影工具运行。 如果 True 输出变量为 true(意味着输入数据集具有指定坐标系),则模型将结束,因为没有工具连接到 True 分支。

ModelBuilder 中的“如果坐标系为”工具

“如果数据类型为”工具

以下示例使用如果数据类型为工具检查输入数据集的数据类型。 如果数据类型为工具有两个布尔输出:TrueFalse。 该模型可检查输入数据模型参数是 shapefile 还是要素类,然后相应地处理数据。 如果输入数据为 shapefile,则 True 输出变量和前提条件将设置为 true,从而允许运行多个添加字段计算字段工具的底部分支。 如果 False 输出变量为 true(意味着输入数据不是 shapefile),则模型将运行顶部分支。

ModelBuilder 中的“如果数据类型为”工具

如果表达式为工具

许多商业实体已强制要求佩戴口罩以预防 COVID-19。 以下示例使用如果表达式为工具查找具有或不具有强制佩戴口罩策略的商业实体。 该模型包含一个名为 Mask 的输入参数,模型根据其值选择特定数据进行分析。 如果表达式为工具有两个布尔输出:TrueFalse表达式参数使用行内变量替换并检查 Mask 值。 如果将 Mask 参数设置为 "Yes",则 True 输出变量和前提条件将设置为 true,从而允许连接的按属性选择图层工具仅选择具有强制佩戴口罩要求的商业实体。 如果将 Mask 参数的值设置为任何其他值,则 False 输出变量和前置条件将设置为 false,并且连接的按属性选择图层工具将设置为选择不具有强制佩戴口罩要求的商业实体。

ModelBuilder 中的“如果表达式为”工具

如果要素类型为工具

以下示例使用如果要素类型为工具检查特定数据集是否为点要素类。 添加位置工具只接受点作为输入,所以如果没有提供点作为模型的输入,可先将输入要素转换为点。 如果要素类型为工具有两个布尔输出:TrueFalse。 如果输入要素为面或线,则 True 输出变量和前提条件将设置为 true,从而允许运行要素转点工具并将要素转换为点。 如果 False 输出变量为 true(意味着输入要素不是面或线),则模型将按原样使用输入要素,而不必先将其转换为点。

该模型也使用合并分支工具合并 TrueFalse 分支,以便可以在任一分支上运行相同的工具链。

ModelBuilder 中的“如果要素类型为”工具

“如果字段值为”工具

以下示例使用如果字段值为工具检查输入数据在属性字段中是否有特定值。 如果字段值为工具有两个布尔输出:TrueFalse。 如果指定字段具有测试值,则 True 输出变量和前提条件将设置为 true,从而允许应用图层的符号系统工具运行。 如果测试值不存在于属性字段中,则 False 输出变量为 true,添加连接工具将在应用符号系统之前执行。

ModelBuilder 中的“如果字段值为”工具

如果行计数为工具

以下示例使用如果行计数为工具检查输入数据集中的记录数。 如果行计数为工具有两个布尔输出:TrueFalse。 如果输入数据集具有多个要素,则 True 输出变量和前提条件将设置为 true,从而允许融合工具运行。 如果输入数据集没有多个要素,False 输出变量为 true,且底部分支中的工具将会运行。

ModelBuilder 中的“如果行计数为”工具

如果空间关系为工具

以下示例使用 模型构建器 中的如果空间关系为工具检查图层是否具有与其他图层要素有空间关系的要素。 如果空间关系为逻辑工具有两个布尔输出,TrueFalse。 在此示例中,如果任何犯罪数据与学区相交,则 True 输出变量和前提条件将设置为 true,从而允许制作要素图层按位置选择图层工具运行。 如果 False 输出变量为 true(意味着所有输入要素与选择要素都没有空间关系),则模型将结束,因为没有工具连接到 False 分支。

ModelBuilder 中的“如果空间关系为”工具

“如果值为”工具

以下示例使用如果值为工具在当前的房地产列表中查找经济适用房。 该模型有三个输入参数:即财产类型最高价格和布尔选择您的价格是否有弹性,潜在买家可在其中提供值。 如果值为逻辑工具随即检查潜在买家的所选价值是否有弹性。 如果值为逻辑工具有两个布尔输出:TrueFalse。 如果买方的值有弹性,则 True 变量和前提条件将设置为 true,从而允许按属性选择图层向指定价格添加另一 $100000 缓冲区,然后从可用房屋列表中选择所有房屋。 如果买方的值没有弹性,则 False 参数和前提条件将设置为 true,从而允许第二个按属性选择图层工具仅选择在买方指定价格范围内的房屋。

ModelBuilder 中的“如果值为”工具