使用迭代要素选择

迭代要素选择工具迭代要素类中的要素。

用于迭代要素选择的完成的模型

在此工作流中,您将创建一个模型以迭代按要素类(美国各州)中的区域分组的要素,并创建八个要素类(每个组或区域对应一个要素类)。 此外,用于分割要素类的字段值(区域)也被用作输出要素类的名称。 区域名称中包含空格。 例如,太平洋西部地区、中大西洋地区等等。 文件地理数据库中不接受将空格作为有效的文件名字符。 要移除不可接受的空格,将在计算值工具中将迭代器的输出参数值(区域名称)用作行内变量 (%Value%),以便对其进行更改。 最后,将计算值工具的输出用作复制要素工具的输出名称中的行内变量 (%Name%)。 复制要素工具的输出将连接到收集值工具,该工具将收集每次迭代的输出并输出单个多值输出。

先决条件

如果您不熟悉 模型构建器,请查看以下主题:

打开工程

下载工程以在此教程中使用。 该工程包括一个输入地理数据库、一个输出地理数据库和一个完成的模型。

  1. 打开使用迭代要素选择概览页面。
  2. 单击页面右侧的下载
  3. 右键单击下载的 IterateFeatureSelection.zip 文件,然后将其提取到一个方便的位置,例如 C:\Temp
  4. 在提取的文件夹 IterateFeatureSelection 中,双击 ArcGIS Pro 工程文件 IterateFeatureSelection.aprx
  5. 目录窗格中浏览数据,并在必要时单击工程选项卡。 浏览至 Folders > IterateFeatureSelection

    ToolData.gdb 地理数据库中包含 States 要素类,该要素类将被用作模型的输入。

    该模型的输出将被写入 ScratchStates.gdb 地理数据库。

添加工具

您将在 MyProjectTools 工具箱中创建一个模型。 要向模型添加工具,请完成以下步骤:

  1. 如有必要,在目录窗格中,单击工程选项卡。 浏览至 Folders > IterateFeatureSelection > MyProjectTools
  2. 右键单击 MyProjectTools,然后单击新建 > 模型创建并打开模型。
  3. ModelBuilder 选项卡上,单击迭代器 迭代器,然后单击迭代要素选择工具。

    添加“迭代要素选择”工具

    迭代要素选择迭代器随即会添加到模型中。 由于未提供任何参数值,因此迭代器不可用。

  4. ModelBuilder 选项卡上,单击实用程序 实用工具,然后单击计算值工具。

    添加“计算值”工具

    计算值工具随即会添加到模型中。

  5. 如上一步中所述,在模型中添加收集值工具。
  6. 添加复制要素工具。
    1. 单击模型,然后输入复制要素以打开向模型添加工具对话框。
    2. 搜索复制要素工具。
    3. 双击复制要素工具并将其添加到模型。

指定工具参数并连接工具

将工具添加到模型后,您必须为每个工具指定参数。

  1. 双击迭代要素选择迭代器以打开迭代器的对话框。
    1. 对于在要素中参数,浏览至 <Your Project Location>\IterateFeatureSelection\ToolData.gdb 并选择 States 要素类。
    2. 将其余参数留空,然后单击确定

    “迭代要素选择”工具对话框

    输入要素类随即作为模型变量添加到模型(蓝色圆角矩形)中,迭代器的颜色随即更改,指示已提供了所需参数且已做好运行准备。

  2. 右键单击要素选择迭代器,然后单击创建变量 > 从参数 > 按字段分组以显示按字段分组 参数显示为模型中的变量。
    1. 双击按字段分组模型变量,然后从下拉列表中选择 Region
    2. 单击确定关闭对话框。

    “迭代要素选择”工具“按字段分组”设置

    Region 字段值将用于为每次迭代选择要素。

  3. 双击计算值工具以打开该工具的对话框。 对于表达式参数,输入 "%Value%".replace(" ",""),然后将数据类型更改为字符串

    表达式分为以下部分:

    “计算值”工具对话框

    在运行时,迭代器输出参数(蓝色圆角矩形)的区域名称 %Value% 将被替换为变量的值,例如太平洋西部地区、中大西洋地区等。

  4. 单击确定关闭对话框。
  5. 模型构建器 中的各个工具支持等级,且仅在所连接上游工具先运行之后才会运行。 计算值工具将在其表达式中使用迭代器的输出参数,但如果找不到区域名称,则该工具将不会与该参数连接且运行将会失败。 您希望迭代器在计算值工具运行之前运行,以便可以使用区域名称。 为此,您将在计算值工具上将变量设置为前提条件。
  6. 将鼠标悬停在迭代要素选择工具的输出变量(蓝色圆角矩形)上。 单击并拖动以绘制连接计算值工具的连接线。 松开鼠标后,单击弹出菜单中的前提条件

    设置“计算值”工具前提条件

  7. 右键单击 States 变量(蓝色圆角矩形),然后单击重命名。 输入 Input Feature Class 作为新名称。 以类似的方式将迭代器 I_States(绿色圆角矩形)的输出重命名为 Selected Features,并将计算值工具的输出重命名为 Name
  8. 将鼠标悬停在计算值工具输出变量名称(绿色圆角矩形)上方。 单击并拖动以绘制连接复制要素工具的连接线。 松开鼠标后,单击弹出菜单中的前提条件
  9. 双击复制要素工具以打开该工具的对话框。
    1. 对于输入要素参数,从下拉列表中选择 Selected Features
    2. 对于输出要素类参数,浏览至 <Your Project Location>\ScratchStates.gdb 并键入 %Name%

    “复制要素”工具对话框

    保留其余的参数默认设置,然后单击确定以关闭复制要素工具对话框。

  10. 将鼠标悬停在复制要素工具输出变量(绿色圆角矩形)上方。 单击并拖动以绘制连接收集值工具的连接线。 松开鼠标后,单击弹出菜单中的输入值
  11. 重命名所有模型变量,如本主题顶部所示。
  12. 要排列模型元素,请单击 ModelBuilder 选项卡上的自动布局按钮 自动布局,然后单击适应窗口大小按钮 适应窗口大小 以将布局最大化到模型窗口的大小。

运行模型

请完成以下步骤以运行模型:

  1. 右键单击收集值工具的输出,然后单击添加至显示

    输出随即添加到地图中。

  2. 单击 ModelBuilder 选项卡上的保存按钮 保存 以保存模型。
  3. 单击 ModelBuilder 选项卡上的运行按钮 运行 以运行模型。
    “迭代要素选择”模型的输出

    该模型将对 8 组要素进行迭代,并在 ScratchStates.gdb 地理数据库中创建 8 个要素类。

  4. 关闭模型和 ArcGIS Pro