An overview of ModelBuilder tools

ModelBuilder includes a collection of utility tools that support building flexible and powerful models.


Iterators enable batch processing and help repeat a process or set of processes on a set of inputs.

Iterator Description


Iterates over a starting and ending value by a given value. It works exactly like For in any scripting/programming language, executing through a set number of items.


Works exactly like 'while' in any scripting/programming language, executing "while" a condition is true or false for the input or set of inputs.

Iterate Feature Selection

Iterates over features in a feature class.

Iterate Row Selection

Iterates over rows in a table.

Iterate Field Values

Iterates over each value in a field.

Iterate Multivalue

Iterates over a list of values.

Iterate Datasets

Iterates over datasets in a Workspace or Feature Dataset.

Iterate Feature Classes

Iterates over feature classes in a Workspace or Feature Dataset.

Iterate Files

Iterates over files in a folder.

Iterate Rasters

Iterates over rasters in a Workspace or a Raster Catalog.

Iterate Tables

Iterates over tables in a workspace.

Iterate Workspaces

Iterates over workspaces in a folder.


ModelBuilder utilities include diverse operations all focused on extending the capabilities of a model.

Utility Description

Calculate Value

Returns a value based on a specified Python expression.

Collect Values

Collects output values of an iterator, or converts a list of multivalues into a single input. The output of Collect Values can be used as input to tools such as Merge, Append, Mosaic, and Cell Statistics.

Get Field Value

Gets the value of the first row of a table for the specified field.

Parse Path

Parses the input into its file, path, name, or extension. The output can be used as inline variables in the output name of other tools.

Select Data

Selects a child data element in a parent data container such as a folder, geodatabase, feature dataset, or coverage.


Logical tools are a category of ModelBuilder utilities that help you control the flow of processes in a model and enable if-then-else branching logic.


If Data Exists

Evaluates if the specified data exists.

If Field Exists

Evaluates if the input data has the specified fields.

If Selection Exists

Evaluates if the input data has a selection and if a certain number of records are selected.

If Coordinate System Is

Evaluates if the input data has the specified coordinate system.

If Data Type Is

Evaluates if the input data matches the specified data type.

If Feature Type Is

Evaluates if a feature class is of the specified feature type.

If Field Value Is

Evaluates if the values in an attribute field match a specified value, expression, or second field.

If Row Count Is

Evaluates if the row count of the input data matches a specified value.

If Spatial Relationship Is

Evaluates whether the inputs have a specified spatial relationship.

If Value Is

Evaluates an input value against a single value, a list of values, or a range of values using a defined comparison operator.

Merge Branch

The Merge Branch tool merges two or more logical branches into a single output.


For the set of input values, iteration will continue if all the inputs are true and stop if any one of the inputs is false. It is functionally similar to the While iterator but is useful to stop a model if there is one While iterator in a model and no additional iterators can be added.