PikTools
СКЛЕИТЬ
ПАРАМЕТРЫ
Склеить параметры — автоматизированное, быстрое и безошибочное заполнение параметров на основе значений других параметров и расчетных формул
  • Решение рутинных задач
    Параметризация элементов, заполнение спецификаций, маркировка видов
  • Автоматизация
    Минимум действий для сложной параметризации модели и исключение ошибок ручного заполнения параметров
  • Универсальность
    Подходит для АР, КР, ИОС, работает с любыми параметрами и семействами
  • Гибкость и адаптивность
    Создание и сохранение настроек для использования в разных моделях и под любые требования проектной организации
  • Работа через Excel
    Удобная работа с формулами и фильтрами, быстрые правки таблиц без перезагрузки модели
  • Запуск в один клик
    Быстрая работа в трёх режимах: вся модель, видимые или выбранные элементы
  • Встроенные алгоритмы
    Передача данных между элементами, подбор изоляции, работа с пространствами
  • Расширенные функции
    Встроенный конвектор единиц, округление, сравнение значений, префиксы/суффиксы
ОПИСАНИЕ
Плагин работает по конфигурационной таблице, лежащей в рабочей папке, имя которой указано в параметре Путь к таблице.
ПОДГОТОВКА К ИСПОЛЬЗОВАНИЮ
  • Создать на диске компьютера пустую папку, в которой будут храниться настраиваемые пользователем конфигурационные файлы для работы плагина (далее – Рабочая папка).
  • При первом запуске плагина необходимо выбрать путь к созданной в п.1 рабочей папке. При будущих запусках инструмента путь к папке заново указывать не требуется.
  • В папке автоматически появятся файлы (если ранее в папке не было файлов с таким именем):
GlueParametersExternalSettings.json – файл с перечислением обрабатываемых категорий Revit.
InsulationSettings.xlsx – файл с номенклатурным рядом используемых в проектах типов изоляции труб.
Пример конфигурационной таблицы.xlsx – файл, на основе которого можно настроить правила заполнения параметров в проекте. Указанный файл можно скопировать, переименовать и настраивать под себя для различных сценариев применения.
Указанные файлы настраиваются под себя однократно и далее используются без необходимости редактирования во всех однотипных проектах с одинаковым набором параметров. Подробные сведения о настройке файлов представлены далее.

  • В модель должен быть добавлен текстовый параметр проекта с названием Путь к таблице. Данный параметр необходимо добавить к категории Сведения о проекте. В сведениях о проекте (вкладка «Управление» -> кнопка «Информация о проекте») параметр Путь к таблице должен содержать название таблицы, в которой заданы правила заполнения параметров. Таблица должна располагаться в указанной в п.1 рабочей папке. Имя файла таблицы следует задавать без расширения (без «.xlsx»).
  • У обрабатываемых элементов модели должны иметься параметры, которые указаны в таблицах склейки. Заполняемые склейкой параметры должны быть добавлены как параметры экземпляра. Заполняемые параметры не должны быть заблокированы для записи (например, формулами в семействе).
Если нужных параметров у элементов не будет, то данный параметр у элементов обработать не получится, в лог будет выдано информационное сообщение.
ЗАПУСК ПЛАГИНА
Кнопка запуска плагина находится на вкладке PikTools.
  • Запуск плагина осуществляется с любого вида или спецификации.
  • Плагин работает в 3-х режимах:
  1. Вся модель - т.е. обрабатываются все элементы модели, подходящие под правила;
  2. Видимые элементы на виде - т.е. обрабатываются только те элементы, которые видны на активном виде;
  3. Выбранные элементы - т.е. обрабатываются те элементы, которые были выбраны пользователем до запуска плагина (в т.ч. выбранные пользователем строки в спецификации). Элементы для данного режима также можно будет выбрать после запуска плагина.
Из выпадающего списка необходимо выбрать нужный режим.
ЛОГИКА РАБОТЫ
Логика работы плагина заключается в том, что плагин заполняет значения параметрам по правилам, описанным в рабочей таблице.
Правила заполнения рабочей таблицы приведены ниже.

ВОЗМОЖНЫЕ ОШИБКИ
По итогу отработки плагина открывается окно вывода ошибок, в котором перечисляются найденные в ходе работы ошибки.

ИНТЕРФЕЙС ОКНА ВЫВОДА ОШИБОК
Из лога можно выделить и исследовать в модели конкретные элементы. При нажатой галочке «Показать элемент» автоматически открывается вид с этим элементом.
ПЕРЕЧЕНЬ ВОЗМОЖНЫХ ОШИБОК

Ошибка

Решение

Плагин не отрабатывает и выдает ошибку «Не найдена конфигурационная таблица»

1.  Добавить текстовый параметр проекта Путь к таблице к категории Сведения о проекте.

2.  Заполнить параметр Путь к таблице в Информации о проекте – написать имя файла без расширения.

Файл xlsx с указанным именем должен присутствовать в рабочей папке.

Плагин не отрабатывает и выдает ошибку «В таблице … нет обязательных листов»

В конфигурационной таблице отсутствует обязательный лист «Пропустить» или нет ни одного рабочего листа, начинающегося на слово «Параметры»

Плагин отрабатывает и выдает окно-отчет об ошибках.


Плагин перечисляет ошибки, не позволяющие обработать все элементы, продолжая работу для остальных элементов.

Ознакомьтесь с текстом ошибки и исправьте её. В большинстве ошибок указано пояснение и ссылка на лист и строку конфигурационной таблицы.

Ошибки могут быть нескольких типов:

·      параметры, указанные в таблице не найдены у элементов;

·      параметры, указанные в таблице заблокированы для записи значений (например, формулой в семействах);

·      целевой параметр у элемента является параметром типа (а не экземпляра).

Не удалось распознать единицу измерения «…» на листе «…» в строке «…».

В формуле в конфигурационной таблице неверно указана единица измерения в фигурных скобках.

Вызывающий поток не может получить доступ к данному объекту, так как его владельцем является другой поток.

При возникновении данной ошибки необходимо повторить запуск инструмента.

В конфигурационной таблице имеется перекрёстная зависимость параметров друг от друга:

Лист "...", строка №...

Лист "...", строка №...

Обработка правил может быть некорректной. Обратитесь к BIM-координатору.

Вариант 1. В одной из строк, которая точно должна обрабатываться позднее, необходимо применить токен @. Благодаря этому токену строка будет обрабатываться во вторую итерацию, и конфликт приоритета обработки будет решён.

Вариант 2. Перенастроить таблицу таким образом, чтобы параметры в разных строках конфигурационной таблицы не зависели друг от друга.

НАСТРОЙКА ФАЙЛОВ В РАБОЧЕЙ ПАПКЕ
GlueParametersExternalSettings.json
В файле перечислены категории элементов модели (в формате «ОST_...»), которые будет обрабатывать плагин. Категории, не перечисленные в файле, полностью игнорируются плагином.
Если конкретный специалист (или группа специалистов), использующие текущую Рабочую папку, никогда не моделируют элементы категории «Стены» (OST_Walls), либо не хотят обрабатывать данные элементы плагином, то данную категорию можно убрать из файла.
Основной список используемых в большинстве моделей категорий уже перечислен в файле.
Полный список встроенных обозначений категорий Revit приведен по ссылке:
https://www.revitapidocs.com/2026/ba1c5b30-242f-5fdc-8ea9-ec3b61e6e722.htm (для Revit 2026)
КОНФИГУРАЦИОННЫЕ ТАБЛИЦЫ
Конфигурационные таблицы могут создаваться сообразно требуемым задачам.

Если Рабочей папкой пользуются сразу много специалистов (на сетевом диске организации), то предлагаемый вариант деления конфигурационных таблиц – по дисциплинам и/или по стандартам моделей. Тогда в Рабочей папке будет лежать, например, файл «АР.xlsx», в котором будут прописаны все правила параметризации для дисциплины АР, и аналогичные файлы для других дисциплин. Или файл «АР_Стандарт 1.0.xlsx», в котором будут содержатся правила для моделей дисциплины АР стандарта 1.0.

Если Рабочей папкой пользуется только один специалист на локальном компьютере, то, например, специалист ОВ может создать себе отдельные таблицы «Отопление.xlsx» и «Вентиляция.xlsx». В моделях вентиляции тогда надо будет заполнять параметр «Путь к таблице» значением «Вентиляция». Если вентиляция и отопления выполняются в одной модели, то удобнее сделать одну общую конфигурационную таблицу.

НАСТРОЙКА И ЗАПОЛНЕНИЕ КОНФИГУРАЦИОННЫХ ТАБЛИЦ
В конфигурационной таблице первым листом обязательно должен быть лист «Пропустить».
Лист Пропустить (обязательный)
На листе Пропустить указываются свойства элементов, на основании которых указанные элементы будут игнорироваться, т.е. плагин не будет их обрабатывать, даже если такие элементы будут подпадать под правила обработки на следующих страницах. В названии столбцов указывается необходимый параметр, по которому будет проходить фильтрация, в строках столбца указываются значения параметра. Столбцы с именами параметров можно добавлять в любом количестве.
Если в рамках определенной таблицы нужно отрабатывать всё, без исключений, то на листе Пропустить ничего не нужно заполнять и оставить его пустым, но не удалять, не переименовывать сам лист и не удалять первую строчку (шапку таблицы).
Листы Параметры (обязательный)
Листов с названием, начинающимся на “Параметры”, может быть несколько. В имени листа после слова “Параметры” может идти любое другое слово или словосочетание без пробелов и других символов.
Листы с другими названием несут вспомогательный характер и не обрабатываются плагином. Листы с другими названиями должны располагаться в конце.
Логика работы
Плагин заполняет значения параметров у элементов по правилам, описанным на листах с именем «Параметры...».
На листах:
  • Целевой параметр (Столбец А) – параметр, в который будет происходить запись значения. Параметры, заполняемые плагином, должны быть параметрами экземпляра.
  • Формула (Столбец B) - значение, которое заполнится в параметр;
  • Критерий или фильтр (Столбцы С и далее до первой пустой ячейки в строке 1), по которому плагин определяет, какому элементу в параметр запишется значение.
Фильтр — это любой параметр или несколько параметров, по значению которых происходит выборка (фильтрация) элементов для заполнения параметров.

Пример листа с правилами заполнения параметров.
ПРАВИЛА ЗАПИСИ ФОРМУЛ
Запись формул
Формулы могут быть такими:
  • Конкретное значение - текстовое или числовое значение записывает в формулу без каких-либо дополнительных символов.
Пример:
  • Алгоритмы - это последовательность действий для получения определенных результатов, прописанные в коде, и выполняемые при наличии вызова алгоритма в формуле.
Алгоритм ВСЕГДА вызывается символами <# #>

Перечень алгоритмов:

  • ParentToChildParameter— алгоритм перезаписывает значение параметра из родительского семейства в аналогичный параметр общего вложенного семейства, т.е. правило записывается для родительского семейства, у которого склейка получит общие вложенные семейства и им перезапишет значение указанного параметра.
Пример:
У элементов указанных категорий, значение параметра MEP_Система перепишется из родительских семейств в общие вложенные.

  • PipeInsulation – алгоритм подбирает ближайший подходящий внутренний размер трубной изоляции из номенклатурного ряда производителя, подходящий к внешнему диаметру трубы и с учетом толщины изоляции.
Номенклатурный ряд производителя записывается в файл InsulationSettings.xlsx на вкладку «Материалы изоляции труб» в Рабочей папке в соответствии с примером.

Пример:
В столбце А записывается имя типоразмера семейства изоляции (или часть имени со звездочками). В столбцы B и C – сочетания толщин и внутренних размеров, имеющихся у применяемого производителя изоляции.

При отсутствии подходящего размера изоляции в файле InsulationSettings.xlsx, плагин вернет значение «!!!Размер не найден» и выдаст соответствующее сообщение в лог.

Пример:
В данном примере в параметр MEP_Диаметр экземпляра изоляции запишется ближайшее найденное значение из столбца B соответствующее размеру трубы.
  • FittingInsulation - наличие этого алгоритма в формуле показывает, что целевой параметр находится не в обрабатываемом элементе категорий Арматура трубопроводов/воздуховодов, соединительные детали трубопроводов/воздуховодов, а в его изоляции (Материалы изоляции трубопроводов/воздуховодов). Таким образом, можно переписывать значения параметров из фитингов в параметры изоляции этих фитингов, в том числе с необходимыми преобразованиями/вычислениями.
На скриншоте показано вычисление площади поверхности шумоглушителей и запись полученного значения в параметр MEP_Количество изоляции данного шумоглушителя.
  • SpaceName- этот алгоритм определяет в каком пространстве располагается элемент и записывает Имя этого пространства;
  • SpaceNumber - этот алгоритм определяет в каком пространстве располагается элемент и записывает Номер этого пространства;
  • GroupName - этот алгоритм определяет в какую группу входит элемент и записывает Имя этой группы;
Пример:
Функции — это действия, выполняемые при наличии спецсимвола в формулах. Символы, которые вызывают функцию, а также правила их применения, приведены в таблице:
Параметры перемычек

Символы, вызывающие функцию

Символ Где можно указать Куда ставить Что значит
~ формула Внутри выражения, заключенного между "<" и ">", но не между "<#" и "#>" <префикс~имя параметра`^суффикс> все что перед этим символом будет считаться текстовым префиксом значения параметра
^ формула Внутри выражения, заключенного между "<" и ">", но не между "<#" и "#>" <префикс~имя параметра`^суффикс> Все что после этого символа будет считаться текстовым суффиксом значения параметра
< формула,фильтры Внутри выражения, заключенного между "<" и ">", но не между "<#" и "#>" <префикс~имя параметра`^суффикс> Символ, вызывающий получение значения параметра, а также расчетные функции и алгоритмы инструмента
> формула,фильтры Внутри выражения, заключенного между "<" и ">", но не между "<#" и "#>" <префикс~имя параметра`^суффикс> Символ, вызывающий получение значения параметра, а также расчетные функции и алгоритмы инструмента
` формула Внутри выражения, заключенного между "<" и ">", но не между "<#" и "#>" <префикс~имя параметра`^суффикс> Заглавная буква, на которую начинается значение параметра, будет приведена к строчной букве (кроме аббревиатур). Пример:«В России -> в России»«БИМ-технологии -> БИМ-технологии»
! формула <префикс~имя параметра`^суффикс>! Пересчитать значение только для элементов, попадающих под данное правило. Допустимо в таблице указывать только одну строку с данным символом, если более одной строки, то в лог выводится ошибка. Необходимо для тестирования, в рабочих таблицах не оставлять
{ формула внутри выражения, заключенного между "<" и ">"<префикс~имя параметра{нужные ед.изм.}^суффикс> * х)>)> Значение между символами "{" и "}" будет воспринято как единицы измерения для конвертации
} формула внутри выражения, заключенного между "<" и ">"<префикс~имя параметра{нужные ед.изм.}^суффикс> * х)>)> Значение между символами "{" и "}" будет воспринято как единицы измерения для конвертации
+ формула внутри выражения, заключенного между "{" и "}"<префикс~имя параметра{нужные ед.изм.+}^суффикс>внутри выражения, заключенного между +<имя параметра>)> Если символ "+" присутствует при конвертации ед.изм., то обозначение единиц измерения попадёт в итоговую строку в виде текста если символ "+" присутствует при вычислении значения, то выполнится математическое действие
# формула <#имя алгоритма#> Взять значение по определённому алгоритму. Внутри выражения с алгоритмом, символ префикса ставить не следует, т.е. <текст~#PipeInsulation#> - неправильно; <текст#PipeInsulation#> - правильно
empty формула,фильтры в колонку с именем параметра или в формулу указывается как единственное значение ячейки Если параметр у элемента присутствует и содержит пустое значение, то элемент пройдёт через фильтр и правило к нему применится. Если это значение записано в формулу, то у элемента значение параметра в модели будет удалено
round формула )>)> + x)>)>)> Функция round возвращает значение, округленное до ближайшего целого числа. При этом не учитывается направление округления
roundup формула )>)> + x)>)>)> Функция roundup возвращает значение, округленное до максимального целого значения, большего или равного х
rounddown формула )>)> + x)>)>)> Функция rounddown возвращает значение, округленное до минимального встроенного значения, меньшего или равного х
Fn формула *<имя параметра>)>)>+<имя параметра>-<имя параметра>)> Рассчитывает значение и записывает в параметр.символы между значениями могут быть: /, *, -, +
( формула,фильтры *<имя параметра>)>)>+<имя параметра>-<имя параметра>)> Рассчитывает значение и записывает в параметр.символы между значениями могут быть: /, *, -, +
) формула,фильтры *<имя параметра>)>)>+<имя параметра>-<имя параметра>)> Рассчитывает значение и записывает в параметр.символы между значениями могут быть: /, *, -, +
* формула,фильтры в колонку с именем параметра;в формулу внутри выражения, заключенного между *<имя параметра>)> Позволяет по любому значению или части значения получить элемент для заполнения значения.Если символ присутствует при вычислении значения, то выполнится математическое действие
@ формула Ставится в конце любого выражения Строки с данным символом отрабатываются в самом конце, т.е. сначала прогоняется вся таблица, а потом уже строки с @, в отдельной транзакции.
not фильтры Только в колонку с именем параметра, значение после берется в () можно объединятьnot(значение) and not(значение) Если значение параметра не равно указанному значению, то элемент пройдёт через фильтр и правило к нему применится, соответственно элементы с таким значением будут игнорироваться для данного правила
or фильтры Только в колонку с именем параметра, значение после берется в () можно объединятьnot(значение) and not(значение) Если значение параметра равно любому из перечисленных значений, то элемент пройдёт через фильтр и правило к нему применится
and фильтры Только в колонку с именем параметра, значение после берется в () можно объединятьnot(значение) and not(значение) Позволяет перечислить несколько вариантов значений параметра, которые должны одновременно соблюдаться
нет формула При склеивании такое значение текстового параметра будет проигнорировано, как будто параметр отсутствует.
0 формула При склеивании такое значение числового параметра будет проигнорировано, как будто параметр отсутствует.
greatherthan фильтры Ставится в колонки с именами параметров (фильтры). Значение параметра в колонке сравнивается с числом или со значением другого параметра. Можно комбинировать с логическими операторами not, or, and. not(greather(5)) and lessthan(<имя параметра>) Сравнение значение параметра модели с числом или со значением другого параметра. Работает в том числе и с текстовыми параметрами, если их можно преобразовать в число
lessthan фильтры Ставится в колонки с именами параметров (фильтры). Значение параметра в колонке сравнивается с числом или со значением другого параметра. Можно комбинировать с логическими операторами not, or, and. not(greather(5)) and lessthan(<имя параметра>) Сравнение значение параметра модели с числом или со значением другого параметра. Работает в том числе и с текстовыми параметрами, если их можно преобразовать в число
Да Формула,фильтры Считывание/запись логических параметров типа «Да/Нет»
Нет Формула,фильтры Считывание/запись логических параметров типа «Да/Нет»
Примеры использования основных функций:
  • функция переписи значения из другого параметра ВСЕГДА вызывается символами < >

Пример:
  • функция записи расчетного значения вызывается символами <Fn( )>
  • функция перевода единиц измерения вызывается символами { }
Всем элементам категорий перечисленных в 3 столбце в строке 33 в параметр MEP_Количество_Расчетное запишется расчетное числовое значение из системного параметра Длина с конвертацией в метры, умноженное на числовой коэффициент 1.1. Если в модели Длина = 5000 мм, то в параметр MEP_Количество_Расчетное запишется значение 5,5.

При сложной многоуровневой записи расчетного значения, каждый новый расчет вызывается внутри уже открытой функции с помощью тех же символов <Fn( )> (принцип матрёшки).
  • функция склеивания нескольких отдельных значений и записи их в один параметр выполняется последовательным перечислением необходимых значений/функций/алгоритмов в соответствии с синтаксисом
Всем элементам категории Оборудование в параметр MEP_Размер сводный запишутся значения параметров MEP_Ширина 1 и MEP_Высота 1 через знак “х”. Параметры записываются с использованием вспомогательных символов, описанных на листе Настройки. Значение, которое запишется: 700х500
Если значение параметра, участвующего в формуле, равно 0 или “нет”, то запись будет произведена на пустоту или 0:
  • для параметров с текстовым типом данных:
  • если значение 0, то оно перезапишется на пустоту
  • если значение “нет”, то оно перезапишется на пустоту
  • если значение параметра отсутствует, т.е. пустота, то перезапись произойдет на пустоту;
  • для параметров с числовым типом данных:
  • если значение 0, то оно перезапишется на 0
  • если значение параметра отсутствует, т.е. пустота, то, в случае отсутствия значения в целевом параметре перезапись произойдет на пустоту, в случае наличия какого-либо значения, перезапись произойдет на 0
Если же значение параметра, участвующего в формуле, имеет тип данных «Да/Нет», то запись в целевой текстовый параметр будет произведена на текстовое значение «Да» или «Нет».
результат в модели:
  • функция принудительной записи пустого значения (затирании ранее заполненных данных)вызывается символами empty, без каких-либо дополнительных символов
  • функции округления числового значения вызываются символами round/roundup/rounddown, заключенными в символы < >, а значение для округления в символы ( ). Если функция округления вкладывается в другую, например, в расчетную функцию <Fn( )>, то функция округления также заключаются в символы < >
Запись в параметр с типом данных Да/Нет - функция записывает значение в зависимости от вызываемого символа, это текст с большой буквы или Да, или Нет соответственно, без каких-либо дополнительных символов.

Пример:
MEP_Подключение ЭОМ и MEP_Учитывать в спецификации – логические (булевые) параметры.

Всем элементам, у которых в параметре MEP_Подключение ЭОМ значение «Да», в параметр MEP_Учитывать в спецификации запишется значение «Да», всем элементам, у которых в параметре MEP_Подключение ЭОМ значение «Нет», в параметр MEP_Учитывать в спецификации запишется значение «Нет».
Фильтрация
Каждое правило, описанное в строке, будет применяться к тем элементам, которые соответствуют фильтрации, заданной в 3 и последующих столбцах. Если фильтрация не задана для строки, т.е. в 3 и последующих столбцах пусто, то правило будет записываться всем обрабатываемым элементам модели.

В шапке для 3 и последующих столбцов нужно указывать имя параметра, на основании которого будет производиться выборка элементов.

Фильтрация может производиться по конкретному значению параметра, по части значения, по параметрам с типом данных «Да/Нет», по категориям, именам семейств («Семейство») и типоразмеров («Тип»).
В фильтрах можно указывать:

Конкретное значение
В 3 и последующих столбцах строки указывается конкретное значение.

Пример:
Часть значения с помощью символа *

Варианты использования *:

  • только символ *
это будет означать, что в выборку по данной строке попадут элементы с любым значением параметра, кроме пустого.

Пример:
  • символ * после текста (в конце):
указывается интересующее начало значения, далее символ *
В выборку по данной строке попадут элементы, значение параметра Имя системы которых начинается на «В1…», «В2…», «В3…» и т.д.

Пример:
  • символ * до текста (в начале):
указывается символ * далее интересующие значения
В выборку по данной строке попадут элементы, значение параметра Имя системы которых заканчивается на «…а»

Пример:
  • одновременно до и после текста (и в начале, и в конце):
указывается символ * далее интересующие значение, далее символ *
В выборку по данной строке попадут элементы, значение имени семейства которых содержит «Фланец»

Пример:
Для этого необходимо сделать два столбца с одним и тем же названием параметра, в одном указывается интересующее начало значения, далее символ *, во втором указывается символ * далее интересующие значения
это будет означать, что в выборку по данной строке попадут элементы с значением параметра начинающимся на то, что указано до символа * в одном столбце и заканчивающимся на то, что указано после символа * во втором столбце.

Пример:
Можно обойтись и одним столбцом Имя системы, записав в фильтр «(П5.*) and (*а)».
Параметры с отсутствием значения

Если необходимо записывать правила в зависимости от параметров, у которых отсутствует значение, т.е. равно “пустоте”, используется фильтр empty. Аналогично empty действует запись not(*)

Пример:
В данном примере обработаются элементы категории Трубы, у которых значение параметра MEP_Категория ничем не заполнено.
И/Или/Не

  • Если необходимо записывать правила всем элементам, кроме каких-то определенных, то запись значения необходимо производить в виде функции вызываемой символами not(), в скобках указывать значение, по которому элементы будут исключаться из выборки для заполнения правила, описано на листе Настройки.

Пример:
Таким образом не нужно дублировать строки с один и тем же правилом, перечисляя в каждой строке характеристики для заполнения.
Если необходимо записывать правила элементам с несколькими вариантами значения параметра фильтрации, которые должны одновременно соблюдаться, то запись значения необходимо производить в виде функции, вызываемой символами not() and not(), в скобках указывать разные варианты значения параметра, описано на листе Настройки.

Пример:
Эта строка не будет обрабатывать элементы, у которых значение параметра BDS_Class = «Регистры» или «Сетки» или «Гильзы»
Таким образом, не нужно дублировать строки с один и тем же правилом, перечисляя в каждой строке характеристики для заполнения.

  • Если необходимо записывать правила элементам со значением параметра равному любому из перечисленных значений, то запись значения необходимо производить в виде функции, вызываемой символами () or (), в скобках указывать разные варианты значения параметра.

Пример:
Таким образом не нужно дублировать строки с один и тем же правилом, перечисляя в каждой строке характеристики для заполнения.
При записи значений внутри скобок можно использовать *, соблюдая синтаксис.


Пример:
Приоритет
Первоначально порядок отработки формул делится на группы:

  1. Первыми отрабатываются формулы с текстом или числом, т.е. значения не зависящие от других параметров (без использования < >, расчетных функций, алгоритмов типа Fn);
  2. Вторыми отрабатываются формулы, содержащие обращение к другим параметрам (заключенные в < >), но без обращения к расчетным функциям (алгоритмам типа Fn);
  3. Третьими отрабатываются формулы, содержащие обращение к другим параметрам и вызывающие расчетные функции (алгоритмы типа Fn);
  4. Последними отрабатываются формулы, содержащие алгоритм #ParentToChildParameter#.
Далее для параметров, заполнение которых зависит от других параметров, производится анализ формул. Если в формуле участвует присутствует параметр, заполнение которого происходит с помощью данного плагина, то сначала отрабатывается параметр, содержащийся внутри формулы, а потом уже параметр, к которому записана данная формула. Иными словами, сначала заполняются параметры влияющие на другие, а потом зависимые параметры.
Пример:

на одном из листов заполняется параметр для элементов MEP_Размер сводный, а на другом листе для этих же элементов, но с другими критериями выбора, заполняется параметр PIC_Наименование_по_ГОСТ на основе заполненного ранее параметра MEP_Размер сводный.
Соответственно, сначала отрабатывается заполнение параметра MEP_Размер сводный, а потом PIC_Наименование_по_ГОСТ.
Далее, в рамках каждой группы порядок отработки происходит по следующему принципу:
  • Формулы отрабатываются по принципу “от общего к частному”, в зависимости от критериев определения элементов.
Пример:

Для одного и того же параметра задано несколько формул: одна общая на все элементы модели, остальные две для определенной категории. Соответственно сначала плагин отрабатывает общее правило (нижняя строка на скриншоте), а далее частные на указанные категории (т.е. перезаписывает значение).
Таким образом, если критериев (фильтров) по определению элементов несколько, то строка с наибольшим количеством критериев обработается в последнюю очередь. Т.е. запись значения в модель произойдёт по этой строке с наибольшим количеством критериев.
  • При наличии нескольких формул с одинаковыми критериями выбора, они отрабатываются по последней строке с формулой в зависимости от расположения строки в таблице.
Если выборка элементов по критериям равнозначна по количеству правил-фильтров, то приоритет распределяется построчно, чем ниже строчка (или если строчка расположена на более позднем листе в файле .xlsx) - тем выше у нее приоритет.

Пример:
Для одного и того же параметра, назначены разные формулы, но критерии выбора элементов одинаковые: Категория - Оборудование, BDS_Class - Стояки, Классификация систем есть *Приточная* и *Обратная*, таким образом на выбранные элементы приходится по 3 правила.
Соответственно, элементам запишется формула, указанная в последних строках с подобными критериями.
Самыми последними отрабатываются формулы, содержащие символ “@”. После отработки всех строк в рамках общего распределения приоритета, обрабатываются строки с функцией, вызываемая символом “@”, которая определяет повторно обрабатываемые строки. В рамках этой функции приоритет распределяется согласно общим правилам, описанным выше.