He resuelto cómo hacer esto, aunque de una manera bastante simple. Quería crear un parámetro de valores múltiples donde agrego muchos FeatureLayers y luego elijo un campo ID para cada capa. Lo tengo funcionando pero no pude trabajar cómo hacer que el campo sea una lista desplegable, por lo que un usuario debe ingresar un nombre de campo manualmente. Aquí está la interfaz:
Si alguien ha logrado resolver este problema o algún gurú de ESRI nos bendice con su conocimiento, me encantaría descubrir cómo convertir mi segunda columna (ID de sitio) en un menú desplegable, que enumere campos específicos. Si desea ver un ejemplo de esto, eche un vistazo a la herramienta Crear TIN .
De todos modos para crear esta interfaz, creo una herramienta de secuencia de comandos y agregué un parámetro de capa de entidades de tipo y lo configuré en un valor múltiple como se muestra a continuación.
Luego hice clic en la pestaña Validación en la parte superior y luego en el botón Editar. Como este parámetro es el sexto parámetro en mi herramienta de script, actualicé el siguiente 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
Esto restablece la interfaz en la tabla de columnas múltiples que quería. Cuando usa GetParameterAsText, devuelve lo siguiente usando mi ejemplo:
pipeline pid;Dredging did
He investigado un poco más y he creado la herramienta usando una caja de herramientas de Python. Funciona muy bien, pero tiene una limitación si regresa y elige otra identificación. He publicado el código en GeoNet aquí .