Estou trabalhando em um script Python do ArcGIS (9.3). Uma das entradas é uma lista de recursos. Para cada recurso, preciso selecionar um campo correspondente. Definir o parâmetro como MultiValue fornece uma boa tabela na interface do usuário para todos os recursos que estão sendo processados. Como adiciono outra coluna à tabela MultiValue para selecionar um campo para cada recurso?
Postagens cruzadas: http://forums.arcgis.com/threads/30907-MultiValue-Parameter-with-Multiple-Columns
Resposta de Esri do fórum ArcGIS:
Infelizmente, a solução para isso foi implementada recentemente para a 10.1 com entradas ValueTable para ferramentas de script. Você precisará ter dois parâmetros de vários valores com alguma validação personalizada para fazer isso funcionar para 9.3.1.
fonte
Respostas:
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:
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 .
fonte
se você estiver procurando por uma lista suspensa para o parâmetro ID do site, poderá usar um código da seguinte maneira:
Assim, você pode criar um cursor ou usar outro método para ler todos os campos do FC e passá-los, como uma lista, para a frase anterior
fonte