Automating Processes with ModelBuilder and Python

In this article by Tripp Corbin, GISP, the author of the book Learning ArcGIS Pro you will learn, performing analysis or editing a feature requires many steps. The more you use ArcGIS Pro, the more you will find yourself doing the same process again and again. You may also realize that some of the processes you do repeatedly really require very little interaction on your part beyond selecting a feature and then telling ArcGIS where to save the outputs.

(For more resources related to this topic, see here.)

Would it not be extremely beneficial if you could automate processes you do repeatedly? Create the proverbial Easy button where you simply click on a single tool, fill in a few parameters, and off the tool goes providing you with the results when it was done. That would certainly make your job easier.

With ArcGIS Pro, you can create Easy buttons or tools using ModelBuilder and Python scripts. Both of these allow you to create automated processes that can run multiple tools together in sequence or at the same time to complete an operation. ModelBuilder uses a visual interface to create automation models without the need to be a programmer. Python is the primary scripting language for the ArcGIS platform. With it you can create very powerful scripts that cannot only be used within ArcGIS Pro but also integrate processes across all components of ArcGIS including Server, Online, Extensions, and more. Creating Python scripts does require writing code.

In this article, you will learn:

  • Differences between tasks, geoprocessing models, and Python scripts
  • How to create and run a model
  • Components of a model
  • How to export a model to a Python script
  • Basics of the Python language

Tasks, geoprocessing models, and Python scripts – what is the difference?

After coming across the various tasks, you may be wondering what the difference is between a task, a geoprocessing model, and a Python script? That is a great question.

To answer it, you must first understand what each one is. You already know what a task is, so we will now focus on gaining a better understanding of what a geoprocessing model and Python script are. Once you understand that, you can then understand the differences between the three.

Geoprocessing model

A geoprocessing model is a custom tool created within the ModelBuilder window that contains multiple geoprocessing tools along with their various parameters (inputs, outputs, options, and other values) which work together as part of an integrated process that will run as if it is a single tool.

The preceding illustration is a sample of a very simple model. It contains two geoprocessing tools. In the model, the Buffer tool creates buffered polygons around the Streets input. The resulting buffer polygons are then used to clip the parcels that are located inside the street buffer polygons. Since both of these geoprocessing tools reside inside the model, the user only has to run the model instead of having to run each tool individually. The model automatically runs the tools based on the parameters specified within the model. You will learn more about the components of a geoprocessing model and how to create one later in this article.

Geoprocessing models can include geoprocessing tools, Python scripts, iterators, model-only tools, and other models. This allows them to be as simple or as complex as you need them to be to accomplish the process you have designed them to complete. The ModelBuilder window allows users to create geoprocessing models in a visual environment. No coding is required to build a model. Esri actually refers to ModelBuilder as a visual programming language.

Geoprocessing models can be created using ArcGIS for Desktop (ArcMap or ArcCatalog) or ArcGIS Pro. One downside to a geoprocessing model is that it can only be run from ArcGIS Pro or ArcGIS for Desktop. You cannot schedule them to run automatically at a specific date and time. At least not by themselves!

Python script

A Python script is also a custom tool that can run multiple geoprocessing tools along with their various parameters as part of an integrated process. However, unlike a model that does not require you to write programming code, Python scripts do. You must know the Python scripting language in order to create Python scripts. The following is a small snippet of a Python script created for ArcGIS:

#--------------------------------------------------------------
# Name:       Union Tool Sample Script
# Purpose:     Runs the Union Geoprocessing tool from ArcGIS
# Author:     Esri & Tripp Corbin
#
# Created:     09/15/2015
# Updated:     09/15/2015
#
# Usage: Union two feature classes
#---------------------------------------------------------------

# Import the system modules
import arcpy
from arcpy import env

# Sets the current workspace to avoid having to specify the full path
# to the feature classes each time

env.workspace = "C:\\student\\IntroArcPro\\Databases\\Trippville_GIS.gdb"
#Runs Union Geoprocessing tool on 2 Feature classes
arcpy.Union_analysis (["Parcels", "Floodplains"], "Parcels_Floodplain_Union", "NO_FID", 0.0003)

Python scripts have several advantages over a geoprocessing model. First, Python is not limited to ArcGIS. Python can actually be used to create scripts for many other applications such as Excel, SharePoint, AutoCAD, Photoshop, SQL Server, and more. This means you can use a Python script to run tools across multiple platforms to create a truly integrated process.

Second, Python scripts can be run from outside of ArcGIS. This means you can schedule them to run at specific times and days using your operating system's scheduler application. If your script does include ArcGIS geoprocessing tools, the script will require access to an ArcGIS license to run successfully but ArcGIS does not need to be open and active at the time the script is scheduled to run.

Third, Python can be used to create completely custom geoprocessing tools. It is not limited to just the geoprocessing tools you will find in the ArcGIS Pro toolboxes.

What is the difference?

Now that you have a much better understanding of what a task, geoprocessing model, and Python script are, you will be able to better understand the differences between them. Each can serve a purpose in standardizing and automating common workflows and processes.

The following grid will provide a clearer understanding of the differences between the three:

 

Task

Geoprocessing model

Python script

Run a single geoprocessing tool automatically

Yes – can run a single tool automatically as part of a step

Yes

Yes

Allow users to provide input to tools before running

Yes

Yes

Yes

Run multiple geoprocessing tasks automatically and in sequence

No

Yes

Yes

Be included in a task

No

Yes

Yes

Be included in a geoprocessing model

No

Yes

Yes

Provided a documented workflow

Yes

Yes

No

Be run from outside of ArcGIS Pro

No

No

Yes

Integrate with other applications

No

No

Yes

Be scheduled to run at specific times and days

No

No

Yes

Requires knowledge of programming language

No

No

Yes

Creating geoprocessing models

As mentioned earlier, geoprocessing models are custom tools you create from within ModelBuilder. ModelBuilder provides the graphical interface for building models as well as accessing additional model-only tools, iterators, environmental settings, and model properties.

Models are created for a number of reasons. The first and most common is to automate repetitive processes performed in ArcGIS Pro. If you have an analysis, conversion, or other process you perform on a regular basis, a model can be used as a way to automate it.

Secondly, you can use a model as a way to think through and flowchart a process within ArcGIS Pro. This can help you ensure you have considered all the tools and data you will need to complete a process. Once completed, the model then provides the tool for completing that process as well as the visual and textual documentation that explains how the process was performed.

You can share models with those in your organization so they can use it to perform the process. This can reduce your workload and allow you to concentrate on other tasks that require greater knowledge and skill levels. Because a model runs the geoprocessing tools contained within it automatically, you can create a model that is easy for other less GIS-savvy members of your organization to run themselves without needing a full understanding of ArcGIS Pro. This also helps standardize our methodologies, ensuring everything is done in a consistent and approved manner.

All of this helps to save us time and money through increased efficiency, which is ultimately the main power of ModelBuilder. Like tasks, models consist of multiple components and have their own terminology associated with them.

Model components and terminology

Before you can create a model, you need to understand the pieces and parts that make them up. Models include a series of connected processes. Each process includes a tool, which can be a geoprocessing tool, another model, or a Python script. Each tool has variables that serve as inputs or outputs.

The following figure is an example of a model with two processes:

As you can see in the preceding figure, the model contains two processes built around the Buffer and Union tools. Each of these tools has a number of variables feeding into them. Variables are identified by the blue and green ovals. Notice that the two processes are sharing a variable, Street_Buffer. That variable is an output of the Buffer tool but an input for the Union tool.

There are three basic types of variables that are included in a model. They are data, value, and derived variables. Data variables are existing data that is used as an input to a tool, script, or model. These can be layers in a map, standalone tables, text files, feature classes, Shapefiles, and more.

Value variables are additional information that a tool may use to run. In the case of the Buffer tool, the distance used to create the buffer is considered a value variable as are the options to dissolve, end type, and the other parameters found that appear when you run the Buffer tool normally in the Geoprocessing pane.

Derived variables are the outputs of a process. Again, this can be a new layer, feature class, table, raster, or more depending on the tool used in the process.

Since ModelBuilder is a visual programming language, you can distinguish variable types based on their colors. Although you can adjust these settings by default, data variables are a darker blue. Value variables are a lighter blue and derived variables are green.

Saving a model

If you wish to save a model you create so you can use it again or share it with others, you must save it in a custom toolbox that you create. Models cannot be saved in a system toolbox that is automatically included with ArcGIS Pro when it is installed.

When you create a new project, ArcGIS Pro automatically creates a custom toolbox for that project. It is stored in the project folder as a TBX file. This provides you with an easy to use place to store your models. This toolbox is also automatically linked to your project and accessible in the Project pane as shown in the following screenshot:

You can also create custom toolboxes within a geodatabase so that they, along with your models and Python scripts, are stored with your GIS data as illustrated next. This is a good option if the models or tools that you save to the toolbox will be used in multiple ArcGIS Pro projects.

You can also create other custom TBX files besides the one that is automatically created with a new project. Using a custom TBX file is perfect if the tool and models you save to it will not only be used with multiple projects but also across multiple databases or in the case of consultants, multiple clients.

Using custom TBX files to store models also makes it easier to share them with others since they are smaller than a geodatabase, which also includes all the GIS data. TBX files can easily be e-mailed, uploaded to FTP sites, or placed in your ArcGIS Online account.

Now that you have a good general understanding of a model, its components, and how to save one, it is time to put that knowledge to use.

Exercise 10A – creating a model

A new ordinance was just passed to protect the streams in the Trippville area. It requires all new building or improvement projects to take place at least 150 feet from the centerline of all creeks or streams. This will hopefully protect the banks from erosion and reduce polluted runoff from reaching them.

The Community and Economic Development Director has asked you to calculate the total area of each parcel that is inside the non-disturb buffer and how much of each parcel is out. Since you will need to update this analysis anytime a new subdivision or commercial development is added, you have decided to create a model that you can run every time you need to perform these calculations.

In this exercise, you will create a simple model that will calculate how much of each parcel is inside and outside a non-disturb buffer area around the streams. This model will include a couple of geoprocessing tools and their associated variables.

Step 1 – open the project and the ModelBuilder window

The first step is to open the project and then the ModelBuilder window so you can begin creating the model performing the following steps:

  1. Start ArcGIS Pro and open the Ex10.aprx project found in C:\Student\IntroArcPro\Chapter10.
  2. When the project opens, expand the Toolboxes folder in the Project pane.
  3. Right-click on the Ex10 toolbox you see.
  4. Select New and then Model.

ModelBuilder should now be open and the MODELBUILDER tab has appeared in the ribbon. The Modelbuilder window and tab are used together to create or edit models. The tab contains tools for saving the model, navigating in the Modelbuilder window, and adding content to the model.

You will now begin using these tools to create your model.

Step 2 – adding model components

In this step, you will begin adding tools and variables to your model. You will explore some of the different methods that can be used. You will start with adding the process that will generate the non-disturb buffers around the streams.

  1. Click on the Tools button on the Insert group on the MODELBUILDER tab in the ribbon. This opens the Geoprocessing pane on the right side of the interface.
  2. Click on Toolboxes at the top of the pane to expose the various toolboxes within ArcGIS Pro. These are your system toolboxes.
  3. Expand the Analysis toolbox and then the Proximity toolset.
  4. Drag and drop the Buffer tool from the Toolbox into the Modelbuilder windowso that it looks like this:

    You have just added your first process to a model. Model processes will exist in one of three states: not ready to run, ready to run, and have been run. The process you just added is in the not ready to run state. ArcGIS Pro indicates that visually by displaying the tools and variables in gray. A process will be in the not ready to run state until all required variables have been defined. In the case of the buffer tool, you have not yet defined the three variables required: input feature class, buffer distance, and output feature class. You will now do that:

  5. The input feature class for the Buffer tool used in the model will be the Streams layer in your map. So you will now add that layer as a variable to the model. Select the Streams layer and drag it into the Modelbuilder window. It will be added as a blue oval.
  6. Click somewhere within the blank space in Modelbuilder to deselect the Streams variable.
  7. You now need to connect the streams variable you just added to the Buffer tool. Click on the Streams variable and with your left mouse button still depressed move your mouse pointer until it is over the Buffer tool. Then release your mouse button.
  8. A small popup menu should appear; select Input Features. You have just defined the input feature class for the Buffer tool.
  9. Now, double-click on the Buffer tool in the Modelbuilder window. This will open the tools dialog window in MODELBUILDER so you can define additional variables.
  10. In the distance field, type 150 and verify the units are feet.
  11. The output should automatically be set to Natwtr_Stream_Buffer, which is being saved to C:\Student\IntroArcPro\Chapter10\Ex10.gdb\. Verify this is true by hovering your mouse over the output feature class name. This will be fine for this exercise so you will leave it as is without changing it.
  12. Since the Director has not indicated that any of the stream attributes are important for the calculations, you will have the resulting buffers dissolve. Click on the drop-down arrow under Dissolve Type and select Dissolve all output features into a single feature.


    The Buffer tool window should now look similar to this. Depending on what you may have done previously, the name of the input feature may be slightly different:

  13. Click OK once you have verified your settings.
  14. Click on the Auto Layout button on the MODELBUILDER tab.
    Your model should now include a single completed process that is in the ready to run state. You can tell it is ready to run because the tool and all lined variables are now displayed with a colored fill that is not gray.


    Now, let's save your model to ensure your hard work is not lost in case something happens.

  15. Click on the Properties button in the Model group on the MODELBUILDER tab.
  16. Complete the properties as indicated here:
    •      Name = ParcelsStreamProtectionBuffer
    •      Label = Parcels Stream Protection Buffer Analysis
    •     Leave all other properties with default settings
  17. Click OK.
  18. Click the Save button located in the Model group on the MODELBUILDER tab to save the model. If you still have the Project pane open, you should see the name of the model change from Model to the Label you just entered.

The process you just created in the model will generate the buffer areas around the streams. Now you need to add another process that will calculate how much of each parcel is in and outside that buffer area. You will use the Union tool to union the parcels with the newly created stream buffer. This will create a new feature class that will split each parcel where it is overlapped by the stream buffer, thus allowing you to determine how much is in and outside the buffer.

Step 3 – adding another process

In this step, you will add another process to your model. This process will include the Union tool. You will then link this new process to the one you created in the last step:

  1. Click on the Tools button in the MODELBUILDER tab again.
  2. Expand the Overlay toolset in the Analysis toolbox.
  3. Add the Union tool to your model using the same method you used to add the Buffer tool.
  4. Using your scroll wheel, zoom out in the Modelbuilder windowuntil you have room to move the Union tool so it and the Buffer tool will be visible.
  5. With the Union tool and the Output Feature Class variable selected, use your mouse to move them so that they are located below the Buffer tool as shown next:


    You have now added the Union tool to the model. Now you need to link it to the output from the Buffer tool and define the rest of its required variables:

  6. Double-click on the Union tool to open the tool window.
  7. In the Union tool window, click on the small arrow next to Input Features.
  8. Check the Parcels layer and the Natwtr_Stream_Buffer model variable. Click Add as shown in the following screenshot:

  9. Make the output 
    C:\Student\IntroArcPro\Chapter10\Ex10.gdb\Parcels_StreamBuff_Union.
  10. Click OK.
    Your entire model should now be in the ready to run state and look similar to this:


    Your layout may be different. That is acceptable as long as the proper connections are made and the processes are in the ready to run state.

  11. Save your model and your project.
  12. You may close ArcGIS Pro or leave it open if you plan to continue.

Running a model

After creating a model, of course you will want to run it. There are many ways to run a model. You can run the entire model, those processes in a ready to run state, or just a single process in the model.

If you wish to run the entire model, the easiest way to do that is simply double-click on it from the toolbox it is stored in. This will run all processes in the model that are in the ready to run or have been run state. If you have allowed the users to provide values for some of the variables within the model, they will be prompted to enter those before the model is run. Otherwise, if you did not allow for user input, the model will just indicate that there are No Parameters in the geoprocessing window and all you need to do is click the run button. You will learn how to make a model interactive a little later in this article.

You can also choose to run the model or processes in the model from the ModelBuilder window. Clicking on the Run button in the MODELBUILDER tab will run all ready to run processes within the model. It will not run processes that are in the have been run or not ready to run state. This allows you to build and test a model as you go without being required to run the entire model.

Exercise 10B – running a model

Now that you know a little more about how to run a model, you will get to put that knowledge into practice. In this exercise, you will first run your model from within ModelBuilder. Then you will get to run it directly from the toolbox so you can see what your users will experience when they run the model.

Step 1 – running the model from ModelBuilder

In this step, you will run the model you created in the Exercise 10A – creating a model section from within ModelBuilder. You will also explore how to run individual processes so that you can test your model as you create it:

  1. If you closed ArcGIS Pro after the last exercise, start ArcGIS Pro and open the Ex10.aprx project.
  2. Expand the Toolboxes folder in the Project pane and then the Ex10 toolbox.
  3. Right-click on the model you created in Exercise 10A – creating a model and select Edit from the displayed context menu. This will open the ModelBuilder window.

    If you created your model successfully in the last exercise and saved it, all processes should be in the ready to run state. This is indicated by all tools and variables having a solid color fill applied. If any are filled with gray or empty then you need to go back to the Exercise 10A – creating a model section and work back through the exercise.

  4. Right-click on the Buffer tool in ModelBuilder. Select Run to run the Buffer tool with the connected variables you defined in the model. A small window will pop up inside ModelBuilder that displays the progress of the Buffer tool and will let you know when it is complete. When the tool is finished, notice what happens to the graphics for the Buffer tool and its associated variables.

    Question: how have the graphics for the Buffer tool and its associated variables changed? ________________________________________________________________ ________________________________________________________________

    The Buffer tool process is now in the has been run state. This means you have successfully run that process in the model. As you are beginning to learn, the state of a process will impact how it runs. Now that this process is in the has been run state, it will not run again if you click the Run button in the ribbon. The Run button will only run those processes that are in the ready to run state. Let's verify that though:

  5. Close the popup window that appeared when you ran the Buffer tool.
  6. Click the Run button in the Run group on the MODELBUILDER tab. Watch what happens to the model as it is run.

    Question: did the model try to re-run the Buffer tool?
    ________________________________________________________________
    ________________________________________________________________
    Question: what tool or tools did the model run when you clicked on the Run button and why?
    ________________________________________________________________
    ________________________________________________________________

Step 2 – resetting the run state

In this step, you will learn how to reset the run state of all the have been run processes back to ready to run:

  1. Click on the Validate button in the Run group on the MODELBUILDER tab in the ribbon.

    Question: what happens to all the processes in the model that were in the have been run state? ________________________________________________________________ ________________________________________________________________

  2. Click the Run button on the ribbon and watch how your model runs this time. All the processes will run this time because all of them are in the ready to run state.
    • Now you will actually verify that your model ran and created the feature classes it was supposed to in the project database.
  3. Expand the Databases folder in the Project pane and then expand the Ex10 geodatabase.

    Question: what do you see in this database? ________________________________________________________________ ________________________________________________________________

  4. Right-click on each feature class you see in the Ex10 geodatabase and select Delete until the database is empty. This will allow you to verify the model runs properly when you run it directly from the toolbox in the next step.
  5. Close the ModelBuilder window. If asked to save the model, do so.

Step 3 – running the model from a toolbox

In this step, you will now run the model directly from the toolbox. This will be how most users will access and run models you create. Running the model using this method will allow you to have the same experience your users will when they run the model:

  1. Make sure the Map view is active.
  2. In the Project pane, expand the Toolboxes folder and the Ex10 toolbox.
  3. Double-click on the Parcels Streams Protection Buffer Analysis model you created.

  4. When you double-click on your model, it should open in the Geoprocessing pane. It will state that there are No Parameters. This is expected because you have not defined any variables as parameters that will accept user input. Click the Run button at the bottom of the Geoprocessing pane.
  5. When the model is finished, return to the Project pane.
  6. Expand the Databases folder and the Ex10 geodatabase. You may need to refresh the geodatabase view to see the results of your model. To do that, simply right-click on the geodatabase and select Refresh.

    Question: what feature class is now in the Ex10 geodatabase and how does that compare to when you ran the model from inside ModelBuilder? ________________________________________________________________ ________________________________________________________________

When you ran the model from inside ModelBuilder, it produced two different feature classes within the Ex10 geodatabase. However, when you ran it from the toolbox, it only produced one. Why is that?

The answer is the feature class that was created by the Buffer tool in the model is considered intermediate data. Intermediate data is any feature class or table that is created within a model that is then used by other tools and is not a final result of a series of linked processes.

When you run a model from a toolbox, it will automatically clean up after itself. This means it automatically deletes intermediate data that is created as the model runs. The only data it leaves is the final results of any processes in the model that are not intermediate data. The end result is you have the data that you need without also being left with a lot of partial datasets or layers that can clutter your database.

Save your project and close ArcGIS Pro.

Now you have created and run your first model. You can now run this model anytime you need to update the calculations for the areas of each parcel in and outside a floodplain.

Making a model interactive

So you have created your first model. It is a very efficient tool that will help you quickly update information. However, what happens if the buffer distance changes or the Director wants to look at different layers such as land use or just the commercial properties?

Right now your model is hardcoded to a specific set of variables. If something changes, you will be forced to edit the model before it can be used. Wouldn't it be more effective to allow others to specify different values for the variables in the model when they run it? You can allow that. It simply requires you to designate a variable as a parameter within the model. This allows the user to provide a value before they run the model.

To designate a variable as a parameter so a user can specify a value when it is run, you simply right-click on the variable in ModelBuilder and select Parameter. When you do, a small capital P will appear next to the variable indicating it is now a model parameter as illustrated in the following screenshot:

In this example, you can see that the Parcels and Parcels_SteamBuff_Union variables are both marked as parameters. This will allow the user to select the values they wish to use for those variables. This means they will be able to union the stream buffers with another layer besides just the parcels layer and control where the results are saved to and the name it is given.

Making a model interactive can greatly increase its functionality. It will allow the model to be used in different scenarios and datasets. The downside is the more interactive you make a model, the greater the chance to introduce operator error. Users may select the wrong input layer for a tool or forget where they set the final results to be saved. This can result in more problems than the model was designed to solve. So it is always a balancing act between flexibility and hardcoding to eliminate error sources.

Now, let's give you an opportunity to make your model interactive.

Exercise 10C – making a model interactive

The Director was impressed with the model you created. It allowed him to easily calculate the area of each parcel that was in and out of the stream protection area. The council is considering changing the buffer distance for the non-disturb area and the Director wants to look at the impact of several different distances. So he will need to be able to run the model in a way that allows him to specify different buffer distances and be able to save the overall results with different names so he can review the results of the different distances.

In this exercise, you will make the previous model you created interactive so that users can provide their own values to variables within the model. You will allow users to specify the buffer distance they want to use and the final output of the model.

Step 1 – marking variables as parameters

In this step, you will learn how to designate variables as parameters within a model. You will make the buffer distance and the output of the Union tool parameters within your model:

  1. Open ArcGIS Pro and the Ex10.aprx project.
  2. Expand the Toolboxes folder in the Project pane.
  3. Expand the Ex10 toolbox and right-click on the Parcels Stream Protection Buffer Analysis model you created in a past exercise. Select Edit to open it in ModelBuilder.
  4. Right-click on the output variable for the Union tool and select Parameter. A small P should appear beside the variable as shown in the following screenshot:

  5. Save your model.

By making the output of the Union tool a model parameter, users will now be able to choose where they will save the final output of the model and what it will be named. This is one of the two requirements the Director asked for. Now you need to allow users to specify a buffer distance.

The buffer distance is currently hardcoded into the model. You need to make it a parameter as you did the output of the Union tool. However, the buffer variable is hidden. So first you will need to make it visible within the model and then designate it as a parameter.

Step 2 – exposing hidden variables

In this step, you will expose the distance variable for the Buffer tool so you can make it a parameter:

  1. Right-click on the Buffer tool in ModelBuilder.
  2. Select Create Variable and then From Parameter. This will display a list of all hidden variables associated with the Buffer tool.
  3. Select Distance [value or field] as shown in the following image:

    •     The Distance variable is now visible in your model. Now that it is visible, you will be able to designate it as a parameter.
  4. Move your mouse pointer so it is over the Distance variable you just added to our model. When your pointer changes to two crossed arrows indicating it is now in move mode, drag the Distance variable so it is above the Buffer tool as shown in the following screenshot:

  5. Right-click on the Distance variable and select Parameter. The small capital P should now appear next to the distance variable indicating it is now a model Parameter.
  6. Save your model.

Your model should now look very similar to this:

This model should now meet the requirements the Director asked for. He will now be able to use different distances from the streams and see the impact it will have on the parcels. He can save the result to a different name and location each time he runs the model.

The last step is to verify your work. You need to test run the model to see if it allows users to specify a distance and the output values.

Step 3 – running the model

In this step, you will run the model from the toolbox to make sure it will allow the Director to input a distance and specify where the output will be saved. Since you have not changed the overall logic or functionality of the model, there is no need to test the processes inside the model again:

  1. Close the ModelBuilder view.
  2. If needed, expand the Toolboxes folder and the Ex10 toolbox in the Project pane.
  3. Double-click on the model you created to open it in the Geoprocessing pane.

    Notice this time that when you open the model in the Geoprocessing pane, it looks different. Instead of saying No Parameters, it is asking for user input. The user can provide values for the two variables you designated as Parameters.

  4. Change the value for the Parcels_Stream_Union variable to C:\Student\IntroArcPro\Chapter10\Ex10.gdb\%Your Name%_Results (i.e. Tripp_Results).
  5. Change the Distance value to any value you wish that is not 150 feet. You can even change the units if you desire.
  6. Click the Run button at the bottom of the Geoprocessing pane when you are done changing the values of the variables.
  7. Once the model has finished running, close the Geoprocessing pane.
  8. In the Project pane, verify the resulting output feature class is located in the Ex10.gdb.
  9. Save your project and close ArcGIS Pro.

You have now created your first interactive model. This model provides more flexibility for the user, allowing them to investigate different scenarios.

Summary

ArcGIS Pro contains two methods for automating and streamlining tasks: you create a model or a Python script. Which will work best will largely depend on your skills and how they will be used.

Models are created in ModelBuilder, which provides a graphical interface for creating tools that will automate a series of processes required to accomplish an analysis or other workflow. Each process within a model will include a tool that can be a geoprocessing tool, script, or another model, along with their associated variables. As you create a model, you can choose to make it interactive by designating variables as parameters. The biggest limitation of a model is that they can only be run from inside of ArcGIS Pro. This means they cannot be scheduled to run automatically.

Resources for Article:


Further resources on this subject:


You've been reading an excerpt of:

Learning ArcGIS Pro

Explore Title