<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Script Tool Multivalue Check Boxes Not Updating in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114344#M62912</link>
    <description>&lt;P&gt;I think .value allows for objects, so its parsing the field name from the field object in your multivalue there.&amp;nbsp; Have you tried setting the filter list to the param filter, instead of the value?&amp;nbsp; You may need to apply my previous suggestion of field names.&lt;/P&gt;&lt;LI-CODE lang="python"&gt;fcFilter = self.params[2].filter
fcFilter.list = filterlist&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 04 Nov 2021 23:03:16 GMT</pubDate>
    <dc:creator>Anonymous User</dc:creator>
    <dc:date>2021-11-04T23:03:16Z</dc:date>
    <item>
      <title>Script Tool Multivalue Check Boxes Not Updating</title>
      <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114121#M62904</link>
      <description>&lt;P&gt;I have been trying to figure out why the Multivalue boxes in my tool don't respond with the "Select All" and "Unselect All" buttons.&amp;nbsp; They also don't stay unchecked (they are default checked) when I click other buttons.&lt;/P&gt;&lt;P&gt;Here is my validation code (the commented out part at the bottom was my attempt but I get errors):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import arcpy
import os


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."""

        if self.params[1].value:
            if self.params[1].valueAsText.find(";") &amp;gt; -1:
                fclist = self.params[1].valueAsText.split(";")
                layerList = []
                for each in fclist:
                    # source = arcpy.Describe(each).catalogPath
                    # desc = arcpy.Describe(each)
                    # layersource = desc.catalogPath
                    layerList.append(each)
                print layerList
            else:
                layerList = []
                # desc = arcpy.Describe(self.params[0].value)
                # layersource = desc.catalogPath
                # layerList.append(layersource)
                layerList = [self.params[1].valueAsText]
                print layerList
            fieldlist = []
            for each in layerList:
                #fieldnames = [f.name for f in arcpy.Describe(each).fields]
                fieldnames = arcpy.Describe(each).fields
                for fields in fieldnames:
                    if fields not in fieldlist:
                        #fieldlist.append(fields)
                        fieldlist.append(fields.baseName.upper())
            self.params[2].value = fieldlist
            print fieldlist
            # if self.params[1].hasBeenValidated:
            #     for checked in self.params[2].valueAsText.split(';'):
            #         if checked not in self.params[2].filter.list:
            #             self.params[2].value = self.params[2].filter.list[2]

        return

    def updateMessages(self):
        """Modify the messages created by internal validation for each tool
        parameter.  This method is called after internal validation."""
        return&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="EvanMyers1_0-1636059253706.png" style="width: 470px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/26880i6257B596AFC3B2D7/image-dimensions/470x487?v=v2" width="470" height="487" role="button" title="EvanMyers1_0-1636059253706.png" alt="EvanMyers1_0-1636059253706.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Any help would be appreciated.&amp;nbsp; Thank you!&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 20:55:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114121#M62904</guid>
      <dc:creator>EvanMyers1</dc:creator>
      <dc:date>2021-11-04T20:55:57Z</dc:date>
    </item>
    <item>
      <title>Re: Script Tool Multivalue Check Boxes Not Updating</title>
      <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114136#M62905</link>
      <description>&lt;P&gt;I think that this&lt;/P&gt;&lt;PRE&gt;if fields not in fieldlist:&lt;/PRE&gt;&lt;P&gt;is checking if the field object is in the fieldlist but it should be checking&amp;nbsp; fields.name.upper() in fieldlist since you are appending the field's basename's to the list.&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 16:24:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114136#M62905</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-11-04T16:24:59Z</dc:date>
    </item>
    <item>
      <title>Re: Script Tool Multivalue Check Boxes Not Updating</title>
      <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114307#M62910</link>
      <description>&lt;P&gt;I tried your suggestion but it caused my field pick list to be blank.&amp;nbsp; I have added a picture of my tool to better illustrate&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 20:52:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114307#M62910</guid>
      <dc:creator>EvanMyers1</dc:creator>
      <dc:date>2021-11-04T20:52:51Z</dc:date>
    </item>
    <item>
      <title>Re: Script Tool Multivalue Check Boxes Not Updating</title>
      <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114344#M62912</link>
      <description>&lt;P&gt;I think .value allows for objects, so its parsing the field name from the field object in your multivalue there.&amp;nbsp; Have you tried setting the filter list to the param filter, instead of the value?&amp;nbsp; You may need to apply my previous suggestion of field names.&lt;/P&gt;&lt;LI-CODE lang="python"&gt;fcFilter = self.params[2].filter
fcFilter.list = filterlist&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2021 23:03:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114344#M62912</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-11-04T23:03:16Z</dc:date>
    </item>
    <item>
      <title>Re: Script Tool Multivalue Check Boxes Not Updating</title>
      <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114646#M62918</link>
      <description>&lt;P&gt;Can you clarify which line this change should go?&amp;nbsp; I tried it on line 47 and my field list doesn't populate.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Nov 2021 20:18:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1114646#M62918</guid>
      <dc:creator>EvanMyers1</dc:creator>
      <dc:date>2021-11-05T20:18:20Z</dc:date>
    </item>
    <item>
      <title>Re: Script Tool Multivalue Check Boxes Not Updating</title>
      <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1116488#M62969</link>
      <description>&lt;P&gt;Has anyone else figured out how this function works?&amp;nbsp; This is still an issue for me.&lt;/P&gt;</description>
      <pubDate>Fri, 12 Nov 2021 20:07:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1116488#M62969</guid>
      <dc:creator>EvanMyers1</dc:creator>
      <dc:date>2021-11-12T20:07:49Z</dc:date>
    </item>
    <item>
      <title>Re: Script Tool Multivalue Check Boxes Not Updating</title>
      <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1116502#M62970</link>
      <description>&lt;P&gt;This block of code lets me choose multiple items/ select all and deselect all works. in my 3rd parameter:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;def updateParameters(self):
    if self.params[2].value:
        fcFilter = self.params[3].filter
        iniPath = r"{}".format(self.params[2].valueAsText)
        attributevalues = list(set([line.strip().split('.')[1] for line in open(iniPath)]))
        attributevalues.sort()
        fcFilter.list = attributevalues&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;line 47 in your code would be replaced, did you also try with a list of fieldnames instead of a list of field objects?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Nov 2021 20:34:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1116502#M62970</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-11-12T20:34:26Z</dc:date>
    </item>
    <item>
      <title>Re: Script Tool Multivalue Check Boxes Not Updating</title>
      <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1116505#M62971</link>
      <description>&lt;P&gt;Another thing you can try to do is work backwards because its hard to debug this class. Create a hard coded list and get that to display/ work correctly and then manipulate your incoming data to be structured exactly like the pseudo list.&lt;/P&gt;</description>
      <pubDate>Fri, 12 Nov 2021 20:36:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1116505#M62971</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-11-12T20:36:47Z</dc:date>
    </item>
    <item>
      <title>Re: Script Tool Multivalue Check Boxes Not Updating</title>
      <link>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1119681#M63042</link>
      <description>&lt;P&gt;Thank you for providing a piece of your code, but this did not work for me.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to use feature layers inside arcmap for my tool to work properly.&amp;nbsp; I cannot use a file path.&amp;nbsp; There are only two issues that prevent my script from working and it comes down to the Validator.&lt;/P&gt;&lt;P&gt;1.&amp;nbsp; If the layers are in a group it will not work at all.&amp;nbsp; E.g. "IOError: "'New Group Layer\wControlValve'" does not exist".&amp;nbsp; On line 42, arcpy.Describe(each).fields, isn't working.&lt;/P&gt;&lt;P&gt;2.&amp;nbsp; If I ungroup my layers, the field list populates, but now none of the boxes will stay unchecked, making my tool useless.&lt;/P&gt;&lt;P&gt;Right now, the way I have my code works to an extent, it is my lack of understanding why the boxes wont stay unchecked.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Nov 2021 21:15:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/script-tool-multivalue-check-boxes-not-updating/m-p/1119681#M63042</guid>
      <dc:creator>EvanMyers1</dc:creator>
      <dc:date>2021-11-23T21:15:24Z</dc:date>
    </item>
  </channel>
</rss>

