尽管已经相当简单地完成了工作,但我已经找到了解决方法。我想创建一个多值参数,在其中添加许多FeatureLayers,然后为每个图层选择一个ID字段。我可以使用它,但是无法使用该字段作为下拉列表,因此用户必须手动输入字段名称。这是界面:
如果有人设法解决了这个问题,或者ESRI的一些专家用他们的知识祝福了我们,我很乐于找出如何将我的第二列(站点ID)变成一个下拉列表,列出特定字段。如果要查看此示例,请查看“ 创建TIN”工具。
无论如何创建此界面,我都会创建一个脚本工具,并添加了要素图层类型的参数并将其设置为多值,如下所示。
然后,我单击顶部的“验证”选项卡,然后单击“编辑”按钮。由于此参数是脚本工具中的第六个参数,因此我更新了以下代码:
def initializeParameters(self):
"""Refine the properties of a tool's parameters. This method is
called when the tool is opened."""
# Get the 6th parameter
param = self.params[6]
param.datatype = "Value Table"
param.columns = [["Feature Layer","Activity Layer"],["Field","Site ID"]]
return
这会将接口重置为我想要的多列表。当您使用GetParameterAsText时,将以我的示例返回以下内容:
pipeline pid;Dredging did
我进行了更多研究,并使用python工具箱创建了该工具。它工作得很好,但是如果您返回并选择另一个ID,确实会有限制。我已经发布了代码的土工网在这里。