Ho capito come farlo anche se in modo abbastanza semplice. Volevo creare un parametro multivalore in cui aggiungere molti FeatureLayer e quindi scegliere un campo ID per ogni livello. Ho funzionato ma non sono riuscito a capire come rendere il campo un elenco a discesa, quindi un utente deve inserire manualmente un nome campo. Ecco l'interfaccia:
Se qualcuno è riuscito a risolvere questo problema o qualche guru dell'ESRI ci benedice con le sue conoscenze, mi piacerebbe scoprire come trasformare la mia seconda colonna (Site ID) in un menu a discesa, elencando campi specifici. Se vuoi vedere un esempio di questo, dai un'occhiata allo strumento Crea TIN .
Comunque per creare questa interfaccia creo uno strumento di script e ho aggiunto un parametro di tipo feature layer e lo ho impostato su un multivalore come mostrato di seguito.
Ho quindi fatto clic sulla scheda Convalida in alto e quindi sul pulsante Modifica. Poiché questo parametro è il sesto parametro nel mio strumento di script ho aggiornato il seguente codice:
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
Questo reimposta l'interfaccia nella tabella a più colonne che volevo. Quando usi GetParameterAsText restituisce quanto segue usando il mio esempio:
pipeline pid;Dredging did
Ho fatto qualche ricerca in più e ho creato lo strumento usando una casella degli strumenti di Python. Funziona molto bene ma ha un limite se torni indietro e scegli un altro ID. Ho pubblicato il codice su GeoNet qui .