Ich habe herausgefunden, wie das geht, wenn auch auf ziemlich einfache Weise. Ich wollte einen mehrwertigen Parameter erstellen, in dem ich viele FeatureLayer hinzufüge und dann für jede Ebene ein ID-Feld auswähle. Ich habe es zum Laufen gebracht, aber ich konnte nicht arbeiten, wie das Feld zu einer Dropdown-Liste gemacht werden kann. Daher muss ein Benutzer einen Feldnamen manuell eingeben. Hier ist die Schnittstelle:
Wenn es jemandem gelungen ist, dieses Problem zu lösen, oder ein Guru von ESRI uns mit seinem Wissen segnet, würde ich gerne herausfinden, wie ich meine zweite Spalte (Site-ID) in ein Dropdown-Menü mit bestimmten Feldern verwandeln kann. Wenn Sie ein Beispiel dafür sehen möchten, schauen Sie sich das Tool TIN erstellen an .
Wie auch immer, um diese Schnittstelle zu erstellen, habe ich ein Skript-Tool erstellt und einen Parameter vom Typ Feature-Layer hinzugefügt und ihn wie unten gezeigt auf einen Mehrwert gesetzt.
Ich habe dann oben auf die Registerkarte Validierung und dann auf die Schaltfläche Bearbeiten geklickt. Da dieser Parameter der 6. Parameter in meinem Skript-Tool ist, habe ich den folgenden Code aktualisiert:
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
Dadurch wird die Schnittstelle in die von mir gewünschte mehrspaltige Tabelle zurückgesetzt. Wenn Sie GetParameterAsText verwenden, wird anhand meines Beispiels Folgendes zurückgegeben:
pipeline pid;Dredging did
Ich habe weitere Nachforschungen angestellt und das Tool mit einer Python-Toolbox erstellt. Es funktioniert sehr gut, hat aber eine Einschränkung, wenn Sie zurückgehen und eine andere ID wählen. Ich habe den Code auf GeoNet gepostet hier .