Skip To Content

Merge Branch


Merges two or more logical branches into a single output.

Branching in a model is accomplished by creating a script tool that implements the necessary if-then-else logic. It is often the case when branching that you need to merge two branches into a single process. What this means is that if you test an input against a condition (examples: whether the data exists on the disk, whether the cell size is greater than 30 meters, whether the field value is 1), it will create two outputs: True, if the condition is true, and False, if the condition is false. If the condition is True, you want to run some processes and if the condition is False, you want different processes to run, as illustrated below. At any point, only one of the branches will run depending on the condition and the input. The Merge Branch tool is used in such cases where it is not possible to say which branch will run and produce results. The output of both branches becomes the input for the Merge Branch tool. The tool looks at the inputs and passes the last output of a branch that has-been-run to the next tool. The Merge Branch tool allows any number of inputs and uses the multivalue parameter control.


How Merge Branch tool works


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

  • The tool examines the list of input variables and returns the first variable that is in the has-been-run state.

  • Merge Branch accepts any data type in its list of values. The output data type is Any Value, which is a generic data type. This means you can connect the output of Merge Branch to any parameter of any tool. When the connected tool is run, it expects the contents of an Any Value variable to be of the correct data type; it is up to you to make sure that the contents are correct for the tool's parameter.

  • Note:

    Most tools in ArcGIS are empty (without color) when added to a model, however the Merge Branch, Collect Values, If Value Is and If Data Exists tools are not. Unlike other system tools, Merge Branch is always a ready to run state (colored in). This is because the input to the tool can be empty which is considered a valid input.


MergeBranch_mb ({in_values})
ParameterExplanationData Type

List of values from different branches. The first ready to run state value in the list will be the output of the tool.

Multiple Value

Derived Output

NameExplanationData Type

The first ready to run state value from the different branches.

Any Value


This tool does not use any geoprocessing environments.

Licensing information

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes