Below is the sample code which throws error when used in model builder and set input from other tool
class CombinedTool(object):
def __init__(self):
"""Define the tool (tool name is the name of the class)."""
self.label = "CombinedLRTool"
self.description = "CombinedTool"
self.canRunInBackground = False
self.params = arcpy.GetParameterInfo()
def getParameterInfo(self):
"""Define parameter definitions"""
in_tables = arcpy.Parameter(
displayName="Input Layers",
name="InputLayers",
datatype="GPFeatureLayer",
parameterType="Required",
direction="Input")
in_seg = arcpy.Parameter(
displayName="Seg Layers",
name="in_seg",
datatype="GPValueTable",
# parameterType="Optional",
direction="Input")
in_seg.columns = [["GPTableView", "layer"]]
testvalue = arcpy.Parameter(
displayName="Test Field",
name="testvalue",
datatype="GPString",
direction="Input")
params = [in_tables,in_seg,testvalue]
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."""
lyrdscr = arcpy.Describe(parameters[1].value[0][0])
parameters[2].value = str([f.name for f in lyrdscr.fields])
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):
return