<?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 Drop down field list in a pyt value table in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/drop-down-field-list-in-a-pyt-value-table/m-p/261341#M20090</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I'm building a tool that uses a value table as it's input. What I'd like is to have a drop down list of fields to choose from for each input layer. I've seen a number of posts about this topic but all of them were processing just one input layer, I have yet to see someone do it for multiple inputs. I'm sure someone here has done it before&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#import system modules&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;import arcpy&lt;BR /&gt;import traceback&lt;BR /&gt;import os&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#initialize tool&lt;/P&gt;&lt;P&gt;class Toolbox(object):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;def __init__(self):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Define the toolbox (the name of the toolbox is the name of the&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;.pyt file)."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.label = "ACLOSAN_Constraint_Layer_Tool"&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.alias = "ACLOSAN_Constraint_Layer_Tool"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# List of tool classes associated with this toolbox&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.tools = [Tool]&lt;/P&gt;&lt;P&gt;class Tool(object):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;def __init__(self):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Define the tool (tool name is the name of the class)."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.label = "ALCOSAN_Constraint_Tool"&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.description = "The purpose of this tool is to process and union layers related to green infrastructure &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;development. The tool will process the data according to whether it is absolutely or relatively constrained."&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.canRunInBackground = False&lt;/P&gt;&lt;P&gt;def getParameterInfo(self):&lt;/P&gt;&lt;P&gt;# input value table &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;Inputs = arcpy.Parameter(&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;displayName="Input Features",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="in_features",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datatype= "GPValueTable",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterType="Required",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;direction="Input")&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;Inputs.columns = [["DEFeatureClass", "Input Layer"], ["GPString", "Constraint Type"], ["GPString", "Constraint Field"],&amp;nbsp;&amp;nbsp;&amp;nbsp;["GPDouble", "Relative Constraint"], ["GPDouble", "Buffer Distance"]]&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RC_output = arcpy.Parameter(&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;displayName="Relative Constrained Union Output",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="RC_out_features",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datatype="DEFeatureClass",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterType="Optional",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;direction="Output")&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;ABS_output = arcpy.Parameter(&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;displayName="Absolutely Constrained Union Output",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="ABS_out_features",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datatype="DEFeatureClass",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterType="Optional",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;direction="Output")&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;Inputs.filters[1].list = ["Absolute", "Relative"]&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;Inputs.filters[1].type = "ValueList"&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;params = [Inputs , RC_output, ABS_output] &lt;BR /&gt; &lt;BR /&gt; return params&lt;BR /&gt; &lt;BR /&gt; def isLicensed(self):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Set whether tool is licensed to execute."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;return True&lt;/P&gt;&lt;P&gt;def updateParameters(self, parameters):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Modify the values and properties of parameters before internal&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;validation is performed. This method is called whenever a parameter&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;has been changed."""&lt;BR /&gt; &lt;BR /&gt; if parameters[0].value and parameters[0].altered:&lt;BR /&gt; #something has to happen here to return the fields&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/P&gt;&lt;P&gt;def updateMessages(self, parameters):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Modify the messages created by internal validation for each tool&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;parameter. This method is called after internal validation."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/P&gt;&lt;P&gt;def execute(self, parameters, messages):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""The source code of the tool."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;#for fld in arcpy.GetParameterAsText(0):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;#print fld&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 08 May 2018 17:54:32 GMT</pubDate>
    <dc:creator>GrantHaynes</dc:creator>
    <dc:date>2018-05-08T17:54:32Z</dc:date>
    <item>
      <title>Drop down field list in a pyt value table</title>
      <link>https://community.esri.com/t5/python-questions/drop-down-field-list-in-a-pyt-value-table/m-p/261341#M20090</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;I'm building a tool that uses a value table as it's input. What I'd like is to have a drop down list of fields to choose from for each input layer. I've seen a number of posts about this topic but all of them were processing just one input layer, I have yet to see someone do it for multiple inputs. I'm sure someone here has done it before&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#import system modules&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;import arcpy&lt;BR /&gt;import traceback&lt;BR /&gt;import os&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#initialize tool&lt;/P&gt;&lt;P&gt;class Toolbox(object):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;def __init__(self):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Define the toolbox (the name of the toolbox is the name of the&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;.pyt file)."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.label = "ACLOSAN_Constraint_Layer_Tool"&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.alias = "ACLOSAN_Constraint_Layer_Tool"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# List of tool classes associated with this toolbox&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.tools = [Tool]&lt;/P&gt;&lt;P&gt;class Tool(object):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;def __init__(self):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Define the tool (tool name is the name of the class)."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.label = "ALCOSAN_Constraint_Tool"&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.description = "The purpose of this tool is to process and union layers related to green infrastructure &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;development. The tool will process the data according to whether it is absolutely or relatively constrained."&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.canRunInBackground = False&lt;/P&gt;&lt;P&gt;def getParameterInfo(self):&lt;/P&gt;&lt;P&gt;# input value table &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;Inputs = arcpy.Parameter(&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;displayName="Input Features",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="in_features",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datatype= "GPValueTable",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterType="Required",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;direction="Input")&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;Inputs.columns = [["DEFeatureClass", "Input Layer"], ["GPString", "Constraint Type"], ["GPString", "Constraint Field"],&amp;nbsp;&amp;nbsp;&amp;nbsp;["GPDouble", "Relative Constraint"], ["GPDouble", "Buffer Distance"]]&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;RC_output = arcpy.Parameter(&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;displayName="Relative Constrained Union Output",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="RC_out_features",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datatype="DEFeatureClass",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterType="Optional",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;direction="Output")&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;ABS_output = arcpy.Parameter(&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;displayName="Absolutely Constrained Union Output",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name="ABS_out_features",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datatype="DEFeatureClass",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameterType="Optional",&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;direction="Output")&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;Inputs.filters[1].list = ["Absolute", "Relative"]&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;Inputs.filters[1].type = "ValueList"&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;params = [Inputs , RC_output, ABS_output] &lt;BR /&gt; &lt;BR /&gt; return params&lt;BR /&gt; &lt;BR /&gt; def isLicensed(self):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Set whether tool is licensed to execute."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;return True&lt;/P&gt;&lt;P&gt;def updateParameters(self, parameters):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Modify the values and properties of parameters before internal&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;validation is performed. This method is called whenever a parameter&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;has been changed."""&lt;BR /&gt; &lt;BR /&gt; if parameters[0].value and parameters[0].altered:&lt;BR /&gt; #something has to happen here to return the fields&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/P&gt;&lt;P&gt;def updateMessages(self, parameters):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""Modify the messages created by internal validation for each tool&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;parameter. This method is called after internal validation."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/P&gt;&lt;P&gt;def execute(self, parameters, messages):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;"""The source code of the tool."""&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;#for fld in arcpy.GetParameterAsText(0):&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;#print fld&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 May 2018 17:54:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/drop-down-field-list-in-a-pyt-value-table/m-p/261341#M20090</guid>
      <dc:creator>GrantHaynes</dc:creator>
      <dc:date>2018-05-08T17:54:32Z</dc:date>
    </item>
  </channel>
</rss>

