Python Toolbox Help

1883
1
12-18-2014 01:21 PM
DavidLeslie
New Contributor II

Could someone show me how to make something like this in a python toolbox as well as explain to me what is going on here?

pythonToolbox.JPG

I know that the user can select either a table or a feature class and this dialog box will create a list of the fields with check boxes. One question I have is when the user checks the fields and clicks OK, does it make a list of the checked fields or does it do something else?

The code below is a close as I've gotten to the above image, even though I know  all it does it let you select a single field from the list of fields. Any help would be much appreciated. Thanks!

        # Third parameter - User will select the parcel ID field
        parcelID = arcpy.Parameter(
            # Name that shows inside the tools dialog
            displayName = "Select the Paracel ID field", 
            # This variable puts the displayName over the input
            name = "parcelID",
            # Accepts a field as input
            datatype = "Field",
            # Have to enter somthing before the tool can run
            parameterType = "Required",
            # It's an input to the tool
            direction = "Input")
            
            parcelID.parameterDependencies = [existingData.name]
Tags (2)
0 Kudos
1 Reply
XanderBakker
Esri Esteemed Contributor

Below an example of a list of field from a featureclass extracted from the Help (ArcGIS Help (10.2, 10.2.1, and 10.2.2) )

def getParameterInfo(self):
    param0 = arcpy.Parameter(
        displayName="Input Features",
        name="in_features",
        datatype="GPFeatureLayer",
        parameterType="Required",
        direction="Input")

    param1 = arcpy.Parameter(
        displayName="Field",
        name="field",
        datatype="Field",
        parameterType="Required",
        direction="Input")

    # Set the filter to accept only fields that are Short or Long type
    param1.filter.list = ['Short', 'Long']
    param1.parameterDependencies = [param0.name]
0 Kudos