Best practices for creating a custom geoprocessing function tool


Summary
This topic discusses recommended practices for creating a custom geoprocessing tool. It details design specifications, naming conventions, parameter guidelines, and developer guidelines.

In this topic


Design specifications

Geoprocessing development starts with a design specification. Include the following in your geoprocessing design specifications when creating custom geoprocessing tools:

Tool description

Before you begin developing a tool, create a tool description doc with the following information:
The Clip (Analysis) tool is shown here as an example:

FC Clip function
USAGE:  FCCLIP <in_feature_class> <clip_feature_class> <out_feature_class>
 {PLANAR | NON_PLANAR} {SINGLE_PART | MULTI_PART} {cluster_tolerance}
<in_feature_class>—The input feature class.
    Parameter name = in_feature_class
    Parameter label = Input feature class:
    Data type       = DEFeatureClassType
    Domain          = FC in {POLY, POINT, LINE}
    Direction       = Input
<clip_feature_class>—The polygon feature class used to clip features in the input feature class.
    Parameter name = clip_feature_class
    Parameter label = Clip feature class:
    Data type       = DEFeatureClassType
    Domain          = FC in {POLY}
    Direction       = Input
<out_feature_class>—The output feature class.
    Parameter name = out_feature_class
    Parameter label = Output feature class:
    Data type       = DEFeatureClassType
    Domain          = N/A
    Direction       = Output
{PLANAR | NON_PLANAR}—Determines if output polygons can overlap (as with shapefiles).
    Parameter name = planar
    Parameter label = Allow overlapping polygons?
    Data type       = GPBooleanType
    Domain          = IN {PLANAR, NON_PLANAR}
    Direction       = Input
{SINGLE_PART | MULTI_PART}—
    Parameter name = multi_part
    Parameter label = Allow noncontiguous output?
    Data type       = GPStringType
    Domain          = IN {SINGLEPART, MULTIPART}
    Direction       = Input
{cluster_tolerance}—The minimum distance between coordinates in the output coverage.
    Parameter name = cluster_tolerance
    Parameter label = Cluster tolerance:
    Data type       = GPDoubleType
    Domain          = >= 0
    Direction       = Input

Naming convention guidelines

For consistency and continuity, adhere to the following naming convention guidelines when creating a custom geoprocessing function tool:

Parameter guidelines

For consistency and continuity reasons the following parameter guidelines must be adhered to by all developers. This will help insure the user experience is consistent.

Developer guidelines

Adhere to the following developer guidelines when creating a custom geoprocessing function tool:


See Also:

Building custom geoprocessing function tool
Create custom function factory
Introduction to building custom geoprocessing function tool
Creating custom function tool class




Development licensingDeployment licensing
Engine Developer KitServer
ServerEngine
ArcGIS for Desktop BasicArcGIS for Desktop Basic
ArcGIS for Desktop StandardArcGIS for Desktop Standard
ArcGIS for Desktop AdvancedArcGIS for Desktop Advanced