On the Model Properties dialog box there is an option to store relative paths. What does it mean?
On the General tab of the Model Properties dialog box is a check box option labeled Store relative path names (instead of absolute paths). Each time you create a custom model tool, you have the option of setting this property. If you check the option then all pathnames within the tool will be stored relative to the toolbox containing the tool. For example, if you set relative pathnames for your tool and distribute it with the data in the same directory, the references stored in the tool would be correct regardless of their placement on disk.
Why can't I see a list of values for a tool's parameter when I use it in ModelBuilder?
There are instances when you are chaining processes together that you forget that most of the data is derived data; meaning it doesn't actually exist. So when you come across a drop down list of what should be something like fields in a table, field values, or data in a workspace, you think something is wrong, when in reality the tool is acting exactly as it should. You can't see a list of fields in a dataset that doesn't exist.
Are you stuck at this point, unable to complete your work? No. You can run all the processes up to this point which will turn the derived data into actual data stored on disk. Once this is done the drop–down list will be populated with values. You can make your selection and continue building your model.
How do I add a database connection model parameter to display existing database connections in a model?
The following steps outline what you need to do to display existing database connections in a model:
Open ArcToolbox.
Right-click and select New Toolbox.
Rename the toolbox with a unique name.
Right-click the new toolbox and select Open Model 1.
Right-click in empty space and select Create Variable.
Select Table or Workspace variable data type and click OK.
Right-click the newly created variable and select Model Parameter.
Double-click the model parameter and navigate to Database Connections.
Select an existing database connection. The model parameter will show the selected table or database connection.
How do I export my model to a script?
In the ModelBuilder interactive window, on the Model menu click Export > To Script and then select a scripting language such as Python, JScript or VBScript.
How do I perform batch processing in ModelBuilder?
Batch processing is simply the ability to run the same tool over and over again and being able to set different parameter values for each run. Imagine you want to import a large number of datasets from one data format to another, or you want to project a group of feature classes into the same coordinate system. Anytime you have multiple datasets and want to perform the same, or similar, action on each, you can use batch processing.
I can run my model in ModelBuilder and everything's fine, but if I run it in the ArcToolbox window or at the command line it doesn't produce any output. Why?
The final output for your model is still marked as Intermediate. Derived data is flagged as Intermediate by default and the final output in your model is no exception. You wouldn't have noticed it as an issue when you ran the model in the ModelBuilder interactive window because, even if data is flagged as intermediate there, it will still maintain a permanent version on disk. The reason is so the model can maintain its state. In the ArcToolbox window or at the command line, the model's state isn't an issue so all intermediate data is deleted upon execution.
Is all data (project and derived) in a model flagged as Intermediate?
No, only derived data is flagged as intermediate by default. If you want to maintain permanent versions of the derived data on disk, uncheck the Intermediate option on the context menu of the data.
There are two exceptions where derived data is not flagged as intermediate: when the model element is exposed as a model parameter (it appears on the dialog box allowing for user input) and when the output of the process updates the input (ex: Add Field).
If I create a model to share with someone that includes tools at a license level higher than they have, or includes extension product tools that they don't have, will the model run?
No. To execute the model successfully they will need licensing for all the tools you place in the model.
Is it possible to connect a tool whose output is a workspace or folder to a tool that requires a feature class as input?
When building models, the output from some tools can be a folder, a geodatabase (personal or file), a feature dataset, or a coverage into which results are placed, such as feature classes or tables. To access this data so it can be used in future processing in the model, you can use the Select Data
I've just opened my model in edit mode and tried to run it; it fails but it looks like it's ready to run. Why won't it run?
When you open a model in edit mode, the state you see represented was accurate as of the last time you opened the model in edit mode. It doesn't mean it's accurate now. Perhaps data has been moved, parameter values are no longer valid, other custom tools used are invalid, and so on.
To guarantee the accuracy of the displayed model state you should always run Validate Entire Model as soon as you open it in edit mode. If there are issues, the state will immediately change to not ready to run, and you will see clearly what needs to be repaired.
Are there any rules about which process will run first in my model?
No. You can only guarantee one process will run before another if you set preconditions.
While a single chain (one branch) model will step from project data through each processing sequence this is the only instance where you can guarantee the order, and this type of model is not the typical. Models usually have multiple chains (many branches) and converge and diverge as the workflow progresses. In this case, there will be no guarantee of process order.
Can I create a generic model so that users can choose their own data?
Yes. There are two ways to create this type of model. First, you can generate a data specific model and for each parameter you'd like the user to set the value for, you can expose it as a model parameter. Exposing model parameters means they will appear on the models dialog box, which allows for user input. This data specific model will display your initial data choices in the input boxes on the dialog box, like defaults, but the user is free to change any of them.
Second, you can create a data non-specific model by creating stand alone variables in the model and connect those to the tools to create processes. Once the stand alone variables have been chained to the tools, you can expose them as model parameters.