A structure for sharing tools

This section describes a folder structure that allows easy sharing of geoprocessing tools. For the purposes of discussion, and to have an unambiguous name, this folder is called the ToolShare folder. You're not required in any way to use this ToolShare folder structure; it's simply meant to provide a reference point.

In the illustration below, <ToolShare> is a system folder anywhere on your system. The folder can have any name (the angle brackets <> denote that the text is to be replaced).

Recommended directory structure


This is a geoprocessing toolbox or toolboxes (.tbx) containing the tools you want to share.

Optionally, your toolboxes could be placed in a geodatabase in the ToolData directory (the ToolData directory is meant to contain data needed for your tools, and can contain personal and file geodatabases). However, a toolbox in the <ToolShare> folder is easier to find and makes it obvious that the content of the <ToolShare> folder is to support geoprocessing tools.

<ArcMap mxd>

If you want to deliver one or more ArcMap, ArcScene, or ArcGlobe documents they should be placed directly below <ToolShare>.


It is common practice to include a Readme.txt file when delivering a folder to someone else. Readme.txt is a text file that you can create with Notepad. If you use a word processor, such as Word, be sure to save the document as simple text.

The audience of a Readme.txt file includes someone that stumbles across the directory and is not necessarily an ArcGIS user. So, it should contain text similar to:

You should also consider providing more information, such as a brief purpose statement, date, and contact information.


The ToolData directory is meant to contain small datasets and .lyr files that your tools need to run. Examples simple lookup tables, such as a table of soil types and their porosity index, or a table of speed limits by CFCC (Census Feature Classification Code). This directory is not meant to contain large datasets, such as soil type polygons for a region. Such large datasets typically reside in a central location, such as an enterprise database or shared directory, and can be accessed using UNC pathnames or database connections.


This folder contains all scripts used by script tools, including any script libraries. Dynamic link libraries (DLLs) and executables can go here as well.


This folder contains anything that helps the user understand the delivered tools, such as:


This directory can be used for writing intermediate data in models and scratch data in scripts. It contains a file geodatabase named scratch.

Learn more about intermediate data and the scratch workspace

Learn more about managing intermediate data

See Also