Прошу помочь разобраться с составлением динамических списков в моделях ModelBuilder с помощью Python'а. Я работаю в ArcGis 10.1 (стандартный Python 2.7).
Задача: разработать "дружелюбную" форму SQL запросов в таблицы баз данных с выводом результатов на экран. Для чего это нужно.. не все понимают принцыпы составления запроса в SQL Exspression или Field Calculator, поэтому пользователю будет предоставлена форма с галочками и динамически меняющимися списками, которые зависят от выбора параметра на предыдущем шаге. Подобных стандартных инструментов хватает в ModelBuilder, но поковыряться в них к сожалению нельзя

Почитал мануалы по созданию скриптов, входных выходных параметров, типы данных. Есть некоторые успехи в использовании стандартных моделей ModelBuilder в связке с Скриптами Python'а, но не во всем могу разобраться сам. С удовольствием почитаю решения подобных проблем в ссылках на литературу или в примерах форумчан.
В общем к сути. В таблице две колонки: Дата (посадки дерева) и Вид (вид дерева - выпадающий список из Домена "Виды деревьев"). Пользователь вызывает мою модель и ему высвечивается форма поиска по таблице с критериями поиска: Искать дату с (тип Date), искать дату по (тип Date), список виды деревьев (тип List - checkBox's), см. рис. 2.
Поля Искать дату с и искать дату по заполняются со стандартного выпадающего календарика. А вот список виды деревьев должен заполняться из CodeValues Домена "Виды деревьев" (назову их Item 1, Item 2 .. Item N). Дальше пользователь убрал галочки с ненужных видов деревьев и нажимает кнопку ОК. Происходит запрос в базу и выделяются найденный записи. Приведу упрощенную схему на рисунке:
Спойлер

- 1. Беру Домен базы данных в качестве входного параметра в скрипт
- 2. Генерирую список CodeValues. В данном пункте проблем не возникло (разобрался). Скрипт настроил так, чтобы на выходе был MultiValues
- 3. Выкидываю обычный список из Скрипта в виде List. Пример скрипта создающий список CodeValues Домена взял из справки ArcGis
- 4. Дальше начались проблемы: Я незнаю как показать пользователю список, сформированный на шаге 3, так как не срабатывает установка флажка Model Parametr на list. Список приведенный в примере вырвал из стандартной модели Frequency. Он удачно присваивается этому компоненту, но бестолку, дальше с ним ничего нельзя сделать
- 5. Продолжу задуманную идею: Пользователь убирает ненужные галочки
- 6. Передаю в скрипт 7 только активные названия в виде списка (или в виде строки, чтобы потом разбить split'ом в скрипте 7)
- 7. Формирую SQL Exspression в блоке скрипта (оставлю эту проблему для самостоятельного разбирательства)
- 8. Забираю в скрипт 7 даты для формирования запроса
- 9. Получаю запрос с пункта 7
- 10. Применяю стандартную модель выделения строк по запросу
Так вот, суть проблемы: как сделать вывод (сформированного в пункте 4) списка в компонент checkBox-List и так вывести, чтобы после выбора пользователя нужных галочек, весь этот список можно было передать в виде параметра в следующий скрипт?
На выходе я хочу получить форму приведенную на рисунке (пока что работает поиск по датам, checkBox - пустышка):
Спойлер
