Tool
A tool performs a small, essential operation on GIS data. There are four types of tools, as shown in the table below. All tools, regardless of their type, work the same way; you can open their dialog box, you can use them in ModelBuilder, and you can call them from software programs.
Tool type | Description |
---|---|
Built-in tool. These tools are built using ArcObjects and a compiled programming language like .NET. | |
Model tool. These tools are created using ModelBuilder. | |
Script tool. These tools are created using the Script tool wizard and run a script file on disk, such as a Python file (.py), AML file (.aml), or executable (.exe or .bat). | |
Specialized tool. These tools are rare—they are built by system developers and have their own unique user interface for using the tool. The ArcGIS Data Interoperability extension contains specialized tools. |
In addition to tool types, there are two categories of tools:
Tool category | Description |
---|---|
System tools | System tools are those tools built and delivered by Esri. They are installed by ArcGIS or any of its extension products. Almost all system tools are built-in tools, but you will also find system tools that are script or model tools. For example, the Spatial Statistics tools are all script tools, but since they are built and delivered by Esri, they are considered system tools. |
Custom tools | Custom tools are built by you. These are most often script or model tools, but they can be built-in tools as well. There are an infinite number of custom tools. |
Since all tools work the same way (that is, you can open their dialog box and use them in ModelBuilder and the Python window) you rarely need to know whether a tool is a system or custom tool. There is no immediate way to find out whether a tool is a system or custom tool. Here are a few clues, however:
- If the tool is documented in the ArcGIS help system, it is a system tool.
- If the tool resides in a system toolbox (see below), it is a system tool.
- If the tool is a built-in tool, it is likely to be a system tool.
As you use geoprocessing tools, you'll quickly develop a sense of which tools are system tools versus custom tools.
Toolboxes
Tools are found in toolboxes. Toolboxes contain tools and toolsets. Toolsets are simple organization folders, just like folders on your system. Tools cannot be stored in anything but a toolbox. Like tools, there are two categories of toolboxes, system and custom.
Toolbox category | Description |
---|---|
System toolboxes | These are toolboxes installed by ArcGIS. They reside in the ArcGIS installation directory and can be found in the Catalog window under the Toolboxes node or in the Search window, as illustrated below. |
Custom toolboxes | Custom toolboxes are created by you. They can reside in any folder or geodatabase. You can view them in the Catalog window by navigating to the toolboxes parent folder or geodatabase. You can also view them in the Search window, as illustrated below. |
Tool dialog
Every tool has a dialog, and the most common method for executing a tool is by using its dialog.
- A tool has any number of parameters, and in the tool's dialog each parameter has an easy-to-use user interface (UI) control for such tasks as browsing for and selecting datasets or picking valid values from a list.
- For all system tools, extensive help is available from the tool dialog.
- Tool dialogs verify the correctness of your inputs and give you immediate feedback if there are problems.
- When the tool finishes executing, an entry will be posted to the Results window.
Results window
When a tool executes, it creates a result that contains information about the execution of the tool such as all input and output parameters and execution messages. You can view the result of a tool in the Results window.
Learn more about the Results windowEnvironments
Environment settings can be thought of as additional parameters that affect the execution of a tool. Environments differ from normal tool parameters in that they do not appear on a tool's dialog (with certain exceptions). Rather, they are values you set once using a separate dialog and are used by tools when they are executed.
Environments settings can significantly affect tool execution. For example, you can set the Extent environment so that only the features in the current map extent are used in tool execution. You can set the Output Coordinate System environment so that your tool writes its output features in a different coordinate system from the input features.
Models and ModelBuilder
In geoprocessing framework, ModelBuilder is how you quickly and easily turn your ideas into software by chaining together tools into a sequence, feeding the output of one tool to the input of another. Models that you build can be thought of as software, since they instruct the computer to do something. The programming language is visual—what you see in ModelBuilder—rather than text-based like a traditional programming language.
The most important thing to note here is that models are tools. They behave exactly like all other tools in the system. You can execute them in the dialog box window or in the Python window. Since models are tools, you can embed models within models. In fact, several of the system tools provided with ArcGIS are models.
Scripting and Python
You can also use a scripting language and geoprocessing tools to create new, useful software. A program that uses a scripting language is a script. Scripting languages are easy to learn and use—a basic understanding of programming logic is all that's needed to be productive. Python is the scripting language used by ArcGIS.
In the geoprocessing framework, scripts are analogous to models in that they can be used to create new tools. Models are created with a visual programming language (ModelBuilder), and scripts are created with a text-based language and text editors.
Just like models, scripts are tools. You can introduce a script to a custom toolbox using a step-by-step wizard, and it becomes just another tool that you can use in a model or in another script. Several of the system tools are scripts.