Eu descobri como fazer isso, embora de uma maneira bastante simples. Eu queria criar um parâmetro de vários valores em que adicionei muitos FeatureLayers e depois escolhi um campo de ID para cada camada. Eu funcionei, mas não consegui trabalhar como transformar o campo em uma lista suspensa, para que o usuário tenha que inserir um nome de campo manualmente. Aqui está a interface:
Se alguém conseguiu solucionar esse problema ou algum guru da ESRI nos abençoar com seu conhecimento, eu adoraria descobrir como transformar minha segunda coluna (ID do site) em uma lista suspensa, listando campos específicos. Se você quiser ver um exemplo disso, dê uma olhada na ferramenta Create TIN .
De qualquer forma, para criar essa interface, crio uma ferramenta de script e adicionei um parâmetro do tipo feature layer e defino-o como um valor múltiplo, como mostrado abaixo.
Em seguida, cliquei na guia Validação na parte superior e depois no botão Editar. Como esse parâmetro é o sexto parâmetro na minha ferramenta de script, atualizei o seguinte código:
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
Isso redefine a interface na tabela de várias colunas que eu queria. Quando você usa GetParameterAsText, ele retorna o seguinte usando meu exemplo:
pipeline pid;Dredging did
Eu fiz mais algumas pesquisas e criei a ferramenta usando uma caixa de ferramentas python. Funciona muito bem, mas tem uma limitação se você voltar e escolher outro ID. Publiquei o código na GeoNet aqui .