Skip To Content

Iterate Feature Selection


Iterates over features in a feature class.

Learn how Iterate Feature Selection works in ModelBuilder


  • This tool is intended for use in ModelBuilder and not in Python scripting.

  • Iterate Feature Selection calls Make Feature Layer to make a new selection and creates two outputs: Selected Features and Value. The output Selected Features is a feature layer and can be used in other geoprocessing tools that accept a feature layer in ModelBuilder.

  • Complex feature classes, such as annotation and dimensions, are not supported by this tool.

  • More than one group by field can be used for the selection. If one or more group by fields are selected, the number of iterations is determined by the number of unique combinations of the group by fields. For each iteration, the selection of the output feature layer is determined by the number of records that match the given combination of the group by fields. If more than one group by field are chosen, then the values are concatenated <field value1>_<field value2> in the output inline variable name. See an example below where two group fields: Name of the hurricane (NAME) and the category of the hurricane (Category) are used. The output Value is Katrina_H5 and so on for the other values.

    Iterate Feature Selection
  • If no group by field is chosen, the output value is the group by ObjectID field, and the selection is one record per selection. If the table does not have an ObjectID (OID) field, such as an Excel table, then the value is blank.

  • The tool has two outputs: Selected Features and group Value of the field for selected features, which could be used as inline variable %Value% in other tools.

  • The temporary feature layer can be saved as a layer file using the Save To Layer File tool or saved as a new feature class using the Copy Features tool.


IterateFeatureSelection_mb (in_features, {fields}, {skip_nulls})
ParameterExplanationData Type

Input feature class or layer containing features to iterate.

Feature Layer
[[Field, Null Value],...]

Input field or fields used to group the features for selection. Any number of input fields can be defined, resulting in a selection based on a unique combination of the fields. If no field is specified, the OID is used to iterate over features.

Define the null value for the field. By default, null values are included in the selection unless specified or the option to skip all null values is checked. The default values are "" for strings and "0" for numbers.

Value Table

Determines if null values in the grouping field or fields are skipped during selection.

  • Checked—Skip through all the null values in the grouping fields during selection.
  • Unchecked—Set as default. Include all the null values in the grouping fields during selection.


This tool does not use any geoprocessing environments.

Licensing information

  • ArcGIS Desktop Basic: Yes
  • ArcGIS Desktop Standard: Yes
  • ArcGIS Desktop Advanced: Yes