Merge Branch (Data Management)
The Merge Branch tool 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.
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.
All the tools in ArcGIS are empty (without color) when added in a model except Merge Branch and Collect Values. Unlike other system tools, Merge Branch is always a ready-to-run state (colored in). This is because the input to Merge Branch is a multiple value data type, and an empty multiple value is considered a valid input.
List of values from different branches. The first ready-to-run state value in the list will be the output of the tool.