PikTools
НЕМОДЕЛИРУЕМЫЕ ЭЛЕМЕНТЫ
Немоделируемые элементы создание в проекте немоделируемых элементов для получения полной спецификации
  • Решение рутинных задач
    Возможность сформировать полную спецификацию из Revit
  • Автоматизация
    Автоматическое создание немоделируемых элементов
  • Универсальность
    Подходит для АР, КР, ИОС, работает с любыми параметрами, доступна вариативность заполнения
  • Гибкость и адаптивность
    Создание и сохранение настроек для использования в разных моделях и под любые требования проектной организации
  • Работа через Excel
    Удобная работа с формулами и фильтрами, быстрые правки таблиц без перезагрузки модели
СОВМЕСТИМОСТЬ
Autodesk Revit 2019-2025.
Начало работы
Установите модуль
«ИОС(общее) - Revit»
в PikTools BOX
  1. Скачайте и установите PikTools BOX (подробнее в инструкции)
  2. Закройте Revit
  3. В разделе PikTools выберите модуль «ИОС(общее) - Revit» и нажмите на кнопку скачивания
  4. Дождитесь завершения скачивания и установки, после чего можно открыть Revit
О ПЛАГИНЕ
НАЗНАЧЕНИЕ
Инструмент «Немоделируемые элементы» автоматически создает позиции, которые фактически не моделируются в проекте, в виде условных элементов с простой геометрией и заполненными параметрами. Это позволяет сформировать полную спецификацию из модели Revit. Например, антикоррозионное покрытие труб, детали крепления трубопроводов и воздуховодов (в кг), окожушивание изоляции воздуховодов на кровле и т.п.
ЧТО ТАКОЕ НЕМОДЕЛИРУЕМЫЕ ЭЛЕМЕНТЫ?
Немоделируемые элементы — это вспомогательные объекты в Revit, которые позволяют учесть в спецификации те материалы и конструкции, которые невозможно или нецелесообразно моделировать геометрически (например, расходные материалы, элементы отделки, комплектующие).
  • Элементы создаются загружаемым семейством с простейшей геометрией.
  • Они размещаются за пределами здания (на отметке -20000 мм или -25000 мм), поэтому не влияют на визуализацию и не мешают работе с моделью.
  • Параметры семейства содержат служебную информацию: количество материала, тип, марку и другие данные, необходимые для спецификации.
Семейство должно иметь два типоразмера:

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

  • Формат файла .xlsx (таблица Excel)
  • В файле должен быть только один лист
  • Имя файла произвольное
  • Имя листа должно совпадать с именем файла
  • Одна строка = одно правило
  • Запись правил начинать строго с третьей строки таблицы
Правила создания немоделируемых элементов содержат два блока информации:
Блок 1: Фильтрация родительских элементов

Диапазон: столбцы от A до столбца с наименованием «Связь» включительно.
Столбцы определяют, какие родительские элементы необходимо обработать (категория, семейство, тип, значения параметров).

Название столбца Назначение
1 Категория Revit Наличие обязательно, заполнение обязательно.
Указывает категорию родительского элемента.
2 Семейство Наличие обязательно, заполнение необязательно.
Указывает имя семейства родительского элемента.
3 Тип Наличие обязательно, заполнение необязательно.
Указывает имя типоразмера родительского элемента.
4 Имена параметров Наличие необязательно, заполнение необязательно.
Произвольное количество столбцов. Каждый столбец — имя параметра для точной фильтрации.
5 Связь Наличие обязательно, заполнение необязательно.
Указывает имя (или часть имени) связанной модели. Используется для обращения к элементам в связанных моделях.

Синтаксис формул — нажмите, чтобы развернуть таблицу
Формула Описание Пример
Пустая ячейка игнорируется при обработке
Equals('значение') Для текстовых параметров. Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы = "значение"
Equals(число) Для числовых параметров. Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы = число Equals(5.2) - десятичные дроби записываются с точкой
Equals(1) Для параметров Да/Нет. Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы = true
Equals(0) Для параметров Да/Нет. Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы = false
Equals('') Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы, пустое
Equals([Имя параметра]) Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы = значению параметра, указанного в прямоугольных скобках
StartsWith('значение') Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы, начинаются на "значение"
EndsWith('значение') Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы, заканчиваются на "значение"
Contains('значение') Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы, содержит "значение"
GreaterThan(число) Для числовых параметров. Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы, больше указанного числа
LessThan(число) Для числовых параметров. Под правило подходят элементы, у которых значение параметра, указанного в столбце таблицы, меньше указанного числа
GreaterThan([Имя параметра])
LessThan([Имя параметра])
Для числовых параметров. Сравнение параметра в шапке таблицы идёт не с конкретным числом, а со значением указанного в прямоугольных скобках параметра.
or Логический оператор "или" · Equals('значение1') or Equals('значение2')
· LessThan(1) or GreaterThan(5)
and Логический оператор "и" · StartsWith('значение1') and EndsWith('значение2')
· GreaterThan(1) and LessThan(5)
! Логический оператор "отрицание" · !Equals('значение')
· !Equals(5) and !LessThan(3)
^ перед функцией Ставится в столбце "Семейство" перед Equals, StartsWith, EndsWith, Contains.
Символ для категории Типовые аннотации. Символ означает, что в обработку следует брать только те элементы типовых аннотаций, которые располагаются на видах, расположенных на листах.
Символ необходим, поскольку в модели может быть множество неиспользуемых при оформлении экземпляров типовых аннотаций.
^Equals('Имя семейства типовой аннотации')
Блок 2: Создание немоделируемых элементов

Диапазон: столбцы, расположенные после столбца «Связь».
Настройки создания — определяют, какие немоделируемые элементы создать и какие параметры им заполнить (наименование, марка, количество и другие значения).

Название столбца Назначение
1 Редактируемый Наличие обязательно. Если значения нет, то создается элемент с типоразмером «Нередактируемый». Если значение «Да», то создается типоразмер «Редактируемый»:
  • Редактируемые элементы могут создаваться в случаях, если невозможно рассчитать количество автоматически по формуле.
  • У редактируемых немоделируемых элементов значения количества и/или других параметров необходимо заполнить в спецификации вручную.
  • Редактируемые элементы не пересоздаются при повторном запуске, чтобы сохранить введенные вручную данные.
2 Имя параметра Наличие обязательно, заполнение обязательно.
Столбец, отвечающий за количество. Имя параметра в названии столбца может быть любым. Параметр должен быть числовым.
3 Имена параметров Наличие необязательно, заполнение необязательно.
Произвольное количество столбцов с любыми именами параметров. Каждый столбец определяет параметр, который будет заполняться у создаваемых немоделируемых элементов.
Все указанные параметры должны присутствовать как параметры экземпляра в семействе немоделируемого элемента или в прокете для категории немоделируемого элемента.

Синтаксис формул — нажмите, чтобы развернуть таблицу
Формула Описание Пример
Пустая ячейка игнорируется при обработке
Обычный текст или число без спецсимволов (для столбцов с текстовым параметром) Текст или число записываются в параметр немоделируемого элемента, указанный в столбце
Число без спецсимволов (для столбцов с числовым параметром) По каждому немоделируемому элементу вычисляется значение.
Далее все значения суммируются, т.е. перемножаются по числу родительских элементов.
В ячейке записано "1".
Для строки обнаружено 10 родительских элементов.
В итоговый немоделируемый элемент запишется значение «10».
[Имя параметра] В параметр немоделируемого элемента, указанного в столбце, записывается значение параметра, имя которого указано в прямоугольных скобках
В том случае, если у родительских элементов значение параметра различное, создаётся несколько отдельных немоделируемых элементов по количеству уникальных значений.
+
-
*
/
Математические операторы для вычислений · 2*1.1+3
(результат вычисления = 5.2)
· [Площадь] * 2.8
Значение параметра Площадь родительского элемента умножается на 2.8 (вычисление происходит по каждому родительскому элементу). Полученные значения суммируются и записываются в параметр немоделируемого элемента, указанный в шапке таблицы.
if(условие, операция1, операция2) Логический оператор if
В зависимости от определённых свойств родительского элемента выполняется та или иная операция.
При записи условий могут использоваться операторы сравнения =, >, <, >=, <=.
Можно производить сравнение текстовых и числовых значений. Текстовое значение записывается внутри апострофов.
При записи условий могут использоваться операторы сравнения and, or, !
· if([Длина]>5, [Длина], 5)
Если у родительского элемента значение параметра Длина >5, то в параметр немоделируемого элемента, указанный в шапке таблицы записывается значение параметра Длина, иначе записывается значение 5.

· If([MEP_Огнестойкость]='EI30', ([Площадь] * 0.6 * 1.3), (If([MEP_Огнестойкость]='EI60', ([Площадь] * 0.8 * 1.3), (If([MEP_Огнестойкость]='EI90', ([Площадь] * 1.2 * 1.3), (If([MEP_Огнестойкость]='EI120', ([Площадь] * 1.8 * 1.3), 0)))))))
В зависимости от значения текстового параметра MEP_Огнестойкость родительского элемента, используется определённая формула для вычисления значения. "Площадь" - параметр родительского элемента. Вычисленное значение записывается в параметр немоделируемого элемента, указанный в шапке таблицы.
HasParameter([Имя параметра]) Используется в условиях if для проверки наличия у родительского элемента указанного параметра. if(HasParameter([Диаметр]), if([Диаметр]<316,([Длина] * 0.65/1000), If([Диаметр]>316 and[Диаметр]<501, ([Длина] * 1.22/1000), if([Диаметр]>501 and [Диаметр]<901 , ([Длина] * 2.25/1000), if([Диаметр]>901 and[Диаметр]<1601, ([Длина] * 2.2/1000), 0)))), if(((2*([Высота] + [Ширина]))<1001) , ([Длина] * 0.65/1000), if(((2*([Высота] + [Ширина]))>1001 and (2*([Высота] + [Ширина]))<1801) , ([Длина] * 1.22/1000), if(((2*([Высота] + [Ширина]))>1801 and (2*([Высота] + [Ширина]))<3601) , ([Длина] * 2.25/1000), if(((2*([Высота] + [Ширина]))>3601 and (2*([Высота] + [Ширина]))<7201) , ([Длина] * 2.2/1000), 0)))))

Если у родительского элемента (воздуховода) есть диаметр, то далее выполняется блок условий для круглых воздуховодов. Иначе выполняется блок условий для прямоугольных воздуховодов. Диаметр, Высота, Ширина - параметры родительского элемента. Вычисленное значение записывается в параметр немоделируемого элемента, указанный в шапке таблицы
NotSumm(число)
NotSumm(формула)
Функция используется только для числовых параметров, когда суммировать вычисленные значения не надо. · NotSumm(1)
Для строки обнаружено 10 родительских элементов.
В итоговый немоделируемый элемент запишется значение 1.

· NotSumm([MEP_Порядок]+1)
Формула в скобках вычисляется для каждого родительского элемента, но суммирования значений не происходит.
Количество немоделируемых элементов создаётся по количеству уникальных значений, получившихся в результате вычисления формулы.
Round(формула)
RoundUp(формула)
RoundDown(формула)
Функция производит округление значения до целого числа. Соответственно, к ближайшему целому, к ближайшему большему или ближайшему меньшему.
Округление производится в рамках каждого отдельного родительского элемента.
· RoundUp(0.12)
Для строки обнаружено 10 родительских элементов. Для каждого родительского элемента произошло округление числа до целого.
В итоговый немоделируемый элемент запишется значение 10.

· NotSumm(RoundUp(0.12))
Для строки обнаружено 10 родительских элементов. Для каждого родительского элемента произошло округление числа до целого.
В итоговый немоделируемый элемент запишется значение 1., т.к. суммирование не осуществляется.
RoundAll(формула)
RoundUpAll(формула)
RoundDownAll(формула)
Функция производит округление значения до целого числа. Соответственно, к ближайшему целому, к ближайшему большему или ближайшему меньшему.
Округление производится в рамках каждого создаваемого немоделируемого элемента.
· RoundUpAll(0.12)
Для строки обнаружено 10 родительских элементов. Для каждого родительского элемента вычислилось значение 0.12.
0.12 * 10 = 1.2
Значение 1.2 округляется до ближайшего большего целого.
В итоговый немоделируемый элемент запишется значение 2.
AddPref([Имя параметра], 'текст') К значению параметра, указанного до запятой, добавится префикс - текст после запятой.
Если параметр [Имя параметра] будет пустым, то не запишется ничего.
AddPref([Комментарии], 'Комментарий: ')
У родительского элемента в модели значение параметра Комментарии = "текст"
Итоговое значение, которое запишется в параметр немоделируемого элемента, указанный в шапке таблицы:
"Комментарий: текст"
AddSuff([Имя параметра], 'текст') К значению параметра, указанного до запятой, добавится суффикс - текст после запятой.
Если параметр [Имя параметра] будет пустым, то в немоделируемый элемент не запишется ничего.
· AddPref([Комментарии], ' - комментарий')
У родительского элемента в модели значение параметра Комментарии = "текст"
Итоговое значение, которое запишется в параметр немоделируемого элемента, указанный в шапке таблицы:
"текст - комментарий"

· AddSuff(AddPref([Комментарии], 'Комментарий: '), ' - комментарий')
У родительского элемента в модели значение параметра Комментарии = "текст"
Итоговое значение, которое запишется в параметр немоделируемого элемента, указанный в шапке таблицы:
"Комментарий: текст - комментарий"
''текст' + [Имя параметра]
[Имя параметра] + 'текст'
Для текстовых значений работает конкатенация значений, через оператор +
В прямоугольных скобках указано имя параметра родительского элемента.
В первом случае необходимо поставить дополнительный апостроф, потому что первый апостроф "съедается" экселем.
''Комментарий: ' + [Комментарии]
У родительского элемента в модели значение параметра Комментарии = "текст"
Итоговое значение, которое запишется в параметр немоделируемого элемента, указанный в шапке таблицы:
"Комментарий: текст".

Отличие от функции AddPref состоит в том, что если бы параметр Комментарии у родительского элемента был пустой, то функция AddPref не записала бы ничего, а конкатенация запишет значение "Комментарий: "
ЗАПУСК ПЛАГИНА И НАСТРОЙКА
Нажмите на вкладку PikTools - панель ИОС Общее – кнопка Немоделируемые элементы.

Первичная настройка:
  1. Нажмите кнопку «Настройки».
  2. Укажите имя семейства немоделируемого элемента.
  3. Укажите путь к конфигурационной таблице.
  4. Сохраните настройки.
Опция «Обновить редактируемые элементы»:
При запуске доступна опция «Обновить редактируемые немоделируемые элементы». Ее использование зависит от ваших задач:
  • Если флажок установлен: Удаляются и пересоздаются все немоделируемые элементы (и «Редактируемые», и «Нередактируемые»).
  • Если флажок снят: Удаляются и пересоздаются только элементы с типоразмером «Нередактируемый». Элементы «Редактируемый» сохраняются (позволяя не терять введенные вручную данные).

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

Для запуска инструмента нажмите кнопку «Начать работу».
После окончания работы инструмента в модели будут созданы немоделируемые элементы.

Совет: Для быстрой проверки немоделируемых элементов создайте в модели вспомогательную спецификацию с фильтром по названию семейства и выводом необходимых параметров, которые должны отображаться в общей спецификации.
ВОЗМОЖНЫЕ ОШИБКИ

Ошибка Решение
Обновите семейство немоделируемых элементов В модели должно присутствовать семейство немоделируемых элементов с типоразмерами "Редактируемый" и "Нередактируемый".
Виртуальные элементы для спецификации заняты пользователем [логин]. Освободите рабочие наборы и запустите инструмент повторно Необходимо попросить указанного пользователя синхронизироваться. Иначе плагин не может удалить и перезаписать существующие немоделируемые элементы.
В таблице <Название таблицы> отсутствуют необходимые листы. Обратитесь в BIM-отдел. В указанной конфигурационной таблице отсутствуют требуемые листы. В таблице должен присутствовать только один лист, названный так же, как файл таблицы.
В файле excel отсутствуют обязательные столбцы. В конфигурационной таблице отсутствуют требуемые столбцы.
В файле excel неправильный порядок расположения столбцов. В конфигурационной таблице неправильный порядок расположения столбцов.
Параметр [имя параметра] отсутствует у семейства немоделируемых элементов. Вариант 1. Необходимо добавить указанный общий параметр проекта к категории "Обобщенные модели". Параметр необходимо добавить как параметр экземпляра. Добавление параметра
Вариант 2. Необходимо добавить указанный параметр внутрь семейства немоделируемых элементов как параметр экземпляра.
Параметр [имя параметра] не является параметром по экземпляру для семейства немоделируемых элементов. Вариант 1. Необходимо удалить указанный параметр из модели и добавить его заново к требуемым категориям, включая категорию "Обобщенные модели". Параметр необходимо добавить как параметр экземпляра.

Вариант 2. Необходимо добавить указанный параметр внутрь семейства немоделируемых элементов как параметр экземпляра.
Параметр [имя параметра] является нередактируемым в семействе немоделируемого элемента. В семействе имеется заблокированный формулой параметр.
Отсутствует ориентир для размещения немоделируемых элементов В модели не размещены оси. Необходимо их добавить.
Ошибки, связанные с распознаванием формул в конфигурационной таблице с указанием номера строки из таблицы. Необходимо проверить синтаксис записи правил в указанной строке.