Pracuję nad skryptem Python ArcGIS (9.3). Jednym z danych wejściowych jest lista funkcji. Dla każdej funkcji muszę wybrać odpowiednie pole. Ustawienie parametru na MultiValue daje niezłą tabelę w interfejsie użytkownika dla wszystkich przetwarzanych funkcji. Jak dodać kolejną kolumnę do tabeli MultiValue, aby wybrać pole dla każdej funkcji?
Przeniesiony: http://forums.arcgis.com/threads/30907-MultiValue-Parameter-with-Multiple-Columns
Odpowiedź Esri z forum ArcGIS:
Niestety, rozwiązanie tego problemu zostało niedawno zaimplementowane w wersji 10.1 z danymi wejściowymi ValueTable dla narzędzi skryptowych. Musisz mieć dwa parametry wielowartościowe z pewnym niestandardowym sprawdzaniem poprawności, aby działało to w wersji 9.3.1.
arcpy
arcgis-9.3
python-script-tool
thwllms
źródło
źródło
Odpowiedzi:
Nauczyłem się, jak to zrobić, choć w dość prosty sposób. Chciałem utworzyć parametr wielowartościowy, w którym dodam wiele FeatureLayers, a następnie wybiorę pole ID dla każdej warstwy. Mam to działa, ale nie mogłem pracować, jak zrobić pole listy rozwijanej, więc użytkownik musi ręcznie wprowadzić nazwę pola. Oto interfejs:
Jeśli komuś udało się rozwiązać ten problem lub jakiś guru z ESRI błogosławi nas swoją wiedzą, chciałbym dowiedzieć się, jak zmienić moją drugą kolumnę (identyfikator witryny) w rozwijaną listę, zawierającą określone pola. Jeśli chcesz zobaczyć przykład tego, spójrz na narzędzie Utwórz NIP .
W każdym razie, aby utworzyć ten interfejs, tworzę narzędzie skryptowe i dodałem parametr typu warstwa funkcji i ustawiłem na wartość wielowartościową, jak pokazano poniżej.
Następnie kliknąłem kartę Walidacja u góry, a następnie przycisk Edytuj. Ponieważ ten parametr jest szóstym parametrem w moim narzędziu skryptowym, zaktualizowałem następujący kod:
Spowoduje to zresetowanie interfejsu do tabeli wielokolumnowej, którą chciałem. Gdy używasz GetParameterAsText, zwraca on następujący przykład na moim przykładzie:
pipeline pid;Dredging did
Zrobiłem trochę więcej badań i stworzyłem narzędzie przy użyciu zestawu narzędzi Python. Działa bardzo dobrze, ale ma ograniczenia, jeśli wrócisz i wybierzesz inny identyfikator. Tutaj opublikowałem kod w GeoNet .
źródło
jeśli szukasz listy rozwijanej dla parametru identyfikatora witryny, możesz użyć kodu w następujący sposób:
Możesz więc utworzyć kursor lub użyć innej metody, aby odczytać wszystkie pola FC i przekazać je jako listę do poprzedniego zdania
źródło