I have created a simple script tool which has a single parameter of type "String". I have written the tool validation to disable the input field (simply trying to learn tool validation). The validator code is as follows:

class ToolValidator:

  def __init__(self):
    import arcpy
    self.params = arcpy.GetParameterInfo()

  def initializeParameters(self):
    self.params[0].Enabled = 0

  def updateParameters(self):

  def updateMessages(self):

Unfortunately, when I open the tool, the field is not disabled (as I expect it should be). Any ideas what I'm missing?

SOLUTION: In case it's not clear in the threads below. The solution to the issue was to change Enabled to enabled, which is a case change between ArcGIS 9.3 and 10.0. This capitalization works correctly both in the initializeParameters method and the updateMessages method.


I think you are putting it in the wrong spot. This is how I've done it previously.

def updateMessages(self):
    self.params[0].enabled = False
  • Thanks for the answer, but this didn't work either. – Caleb Jul 11 '12 at 19:20
  • 4
    Not even when changing it from Enabled to enabled (note case)? – Jason Scheirer Jul 11 '12 at 19:43
  • +1, just noticed that you are also using the lowercase enabled. – Chris Jul 11 '12 at 20:09
  • 1
    Yes, this is the solution. thanks all. love a good case switch between versions :). Jason, if you post your comment as an answer I'll accept it. – Caleb Jul 11 '12 at 20:16
  • I think this actually needs to go in updateParameters, not updateMessages. – blah238 Jul 11 '12 at 20:21

I was able to get it running by using enabled instead of Enabled.

Here is a link that lists all of the available params properties (they show lowerCamelCase for all of the properties): Programming a ToolValidator class

  • I just noticed +Jason Scheirer's comment. – Chris Jul 11 '12 at 20:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.