import arcpy class Toolbox(object): def __init__(self): """Define the toolbox (the name of the toolbox is the name of the .pyt file).""" self.label = "Toolbox" self.alias = "" # List of tool classes associated with this toolbox self.tools = [Tool] class Tool(object): def __init__(self): """Define the tool (tool name is the name of the class).""" self.label = "Tool" self.description = "" self.canRunInBackground = False def getParameterInfo(self): """Define parameter definitions""" a = arcpy.Parameter( displayName = 'a', name = 'a', datatype = 'GPLong', parameterType = 'Required', direction = 'Input' ) b = arcpy.Parameter( displayName = 'b', name = 'b', datatype = 'GPLong', parameterType = 'Required', direction = 'Input' ) total = arcpy.Parameter( displayName = 'Total', name = 'total', datatype = 'GPLong', parameterType = 'Derived', direction = 'Output' ) # Set defaults a.value = 100 b.value = 200 params = [a, b, total] return params def isLicensed(self): """Set whether tool is licensed to execute.""" return True def updateParameters(self, parameters): """Modify the values and properties of parameters before internal validation is performed. This method is called whenever a parameter has been changed.""" return def updateMessages(self, parameters): """Modify the messages created by internal validation for each tool parameter. This method is called after internal validation.""" return def execute(self, parameters, messages): """The source code of the tool.""" # Print all parameters before any changes are made ndx = 0 for p in parameters: arcpy.AddMessage('parameters[%d].valueAsText: %s'% (ndx, p.valueAsText)) arcpy.AddMessage('arcpy.GetParameterAsText(%d): %s' % (ndx, arcpy.GetParameterAsText(ndx))) ndx += 1 arcpy.AddMessage('=' * 50) # Set the output parameter total = int(parameters[0].valueAsText) + int(parameters[1].valueAsText) arcpy.SetParameterAsText(2, total) # Print all parameters again ndx = 0 for p in parameters: arcpy.AddMessage('parameters[%d].valueAsText: %s'% (ndx, p.valueAsText)) arcpy.AddMessage('arcpy.GetParameterAsText(%d): %s' % (ndx, arcpy.GetParameterAsText(ndx))) ndx += 1 return
Glad to hear it!