Passando variável do script ArcPy para o ModelBuilder?

9

Eu tenho um modelo que passa uma variável para um script python. O script usa essa variável para consultar alguns diretórios e retornar uma lista de caminhos. O que eu quero saber é:

  • Como posso usar cada um desses caminhos como parâmetro em uma operação subseqüente?
  • A ponte entre python e ModelBuilder é uma via de mão única?
Tom
fonte

Respostas:

8

Suponho que você adicionou o script Python ao modelo, primeiro adicionando o script Python à caixa de ferramentas, definindo a entrada do script na guia Parâmetros.

Na guia Parâmetros, você pode adicionar novos parâmetros para a saída do script. Para fazer isso, basta alterar:

  • o Directionnas propriedades do parâmetro para Output;
  • o que Data Typedepende da saída do Python (provavelmente uma string ou número inteiro, mas talvez uma classe de recurso);
  • e então Typenas Propriedades do parâmetro para Derived(embora seja justo Requirede Optionalfuncionará dependendo do tipo de dados, mas descreverei isso abaixo)

Em seguida, podemos simplesmente usar arcpy.SetParametera saída do seu script Python de volta para o modelo.

Algumas notas:

  • Se você tem o conjunto de parâmetros de saída para Requiredou Optionalvocê pode fornecer entrada para o script, fornecendo valores padrão, que você pode obter com arcpy.GetParameterou a partir desys.argv
  • O número do parâmetro a ser definido como saída depende do número total de parâmetros para o seu script Python (ou seja, se você já possui dois parâmetros de entrada antes do parâmetro de saída, precisará usá-lo arcpy.SetParameter(2, value))

Veja também a ajuda dos parâmetros da ferramenta de script Arcpy Setting .

om_henners
fonte