BIMIT
Разработка плагинов

params

params - входные параметры запуска плагина (Map<String, Object>). В нём лежат значения, введённые пользователем в форме плагина, и служебные параметры, которые передаёт платформа. params доступен во всех типах плагинов, в том числе внутри form().

Значение поля формы приходит под ключом, равным имени поля (первый аргумент form.add..., см. form):

def form() {
    form.addText("Мин. расстояние, мм")
    form.addInput("minDistance", [value: "100"])
}

def start() {
    def minDistance = (params.get("minDistance") ?: "100") as double
    // то же самое: params.minDistance
}
Значения приходят из JSON: числа могут прийти строкой, Integer или Double, списки - ArrayList, объекты - Map. Приводите типы явно и задавайте значение по умолчанию на случай, если поле не заполнено. Поля мультивыбора (модели, этажи, системы, материалы) приходят строкой вида ["АР","КР"], а не списком - декодируйте её через bim.parseOptionValueToList(...).
List<String> modelNames = bim.parseOptionValueToList((params.get("models") ?: "") as String)

Служебные ключи

Их кладёт платформа, объявлять в форме не нужно:

КлючТип плагинаЧто это
parentElements, parentOptionКоллизиицепочка проверок: элементы и режим отбора предыдущего правила (parentOption: 0 - все элементы, 1 - элементы выборки, 2 - прошедшие проверку, 3 - не прошедшие; "-1" - цепочки нет)
excludedElements, isReportRecalcАналитический отчет, Коллизиипересчёт после исключения элементов пользователем: список UUID-строк исключённых элементов и признак пересчёта
elementa, elementbКоллизииUUID пары элементов для правил «сторона А / сторона Б» (см. bim.getGeometryElementA)
widgetSettingsВиджетысохранённые значения полей окна виджета
dataСметы, Вормстроки сметы (список Map)
refresh, limitTimeвсепризнак пересборки плагина и ограничение времени выполнения (строка, секунды)
parentOption приходит числом, если родительское правило задано, и строкой "-1", если нет. Читайте через строку: Integer.parseInt((params.get("parentOption") ?: "-1").toString()).

Временное хранилище

params - обычная карта Groovy, поэтому её можно использовать как временное хранилище на время работы плагина: доступны params.put(key, value) и params.get(key) (или params.key). Данные с одинаковым ключом перезаписываются, после завершения запуска не сохраняются - для хранения между запусками используйте storage.

Пример использования:

def objectToSave = "Объект для сохранения"
params.put("idObjectToSave", objectToSave)
def savedObject = params.get("idObjectToSave")
console.info(savedObject) // => "INFO Объект для сохранения"
Copyright © 2026