Model building approaches


There are two basic ways, or modes, you can think about ModelBuilder. One is as an application that allows you to perform exploratory project work. The other is as an application where you build generic tools that will be reused and shared.

ModelBuilder for exploratory project work

In this mode of using ModelBuilder, you create processes and immediately run them in ModelBuilder. As you create and run the processes, you can:

All of the above can be done without exiting ModelBuilder, or even saving the model. In this mode, you're using ModelBuilder in an impromptu, ad-hoc way, changing assumptions and exploring alternatives.

ModelBuilder for building generic tools

In this mode, you use ModelBuilder to build a tool that will be used as a system tool; opened and run from ArcToolbox, entered as a command in the Command Line window, called in scripts, or embedded in other models. The expectation is that these types of tools will be shared with others. Models built in this way expose variables as model parameters and should have meaningful variable names and full documentation. Below is an example of a generic tool model. Note that none of the processes are ready-to-run, since all parameters will be supplied by the user at run time.

Generic model tool

The reality

In reality, the models you build will fall somewhere between the two modes, mixing impromptu exploratory project work and generic tool building. Many users start with the exploratory mode, building and verifying a model that uses project data and doesn't expose any parameters, then later modifying these models into more generic tools. It really doesn't matter where you start or end up, because ModelBuilder supports the full spectrum between these modes.

See Also