I'm trying to make sure there is no '-' in the output filename, and if there is, to set an error (circle with the red 'X') so that the tool can't be run, and have a tooltip that explains the issue. I've tried a bunch of things, but from what I've read, it seems this should work:
if parameters[7].value:
if parameters[7].value.value.count("-") > 0:
parameters[7].setErrorMessage("Output cannot have a '-'." + \
"Please change the dash and rename the output after the tool has run")
else:
parameters[7].clearMessage()
return
I'm not super clear on what is returned from the list of parameters. The paramater type is "DEShapefile". There is no error message being thrown when I use "--" as the filename.
Can someone see why it's not working for me?
Answer
I spoofed up a Python script of 1 parameter and wired it into toolbox and this is how I got it to check a FeatureClass input:
import arcpy
class ToolValidator(object):
"""Class for validating a tool's parameter values and controlling
the behavior of the tool's dialog."""
def __init__(self):
"""Setup arcpy and the list of tool parameters."""
self.params = arcpy.GetParameterInfo()
def initializeParameters(self):
"""Refine the properties of a tool's parameters. This method is
called when the tool is opened."""
return
def updateParameters(self):
"""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):
"""Modify the messages created by internal validation for each tool
parameter. This method is called after internal validation."""
self.params[0].clearMessage()
if self.params[0].value is None:
self.params[0].clearMessage()
else:
fc = str(self.params[0].value.value)
if fc.count("-") > 0:
self.params[0].setErrorMessage("Output cannot have a dash")
else:
self.params[0].clearMessage()
return
No comments:
Post a Comment