пятница, 13 мая 2016 г.

Рубрика "Спросите у Чубрика". Настройка спецификации Revit с разными единицами измерения

Продолжаю отвечать на интересные вопросы.

Вот что недавно спросил на VK Владимир Белевич:
"Вопрос знатокам РЕВИТ. Как в спецификации на кровлю ( в одной спецификации) обрешётку, лобовую доску показать м.п...., а всё остальное как отдельные элементы? Как лучше это сделать?"

Вопрос стандартный, я про это рассказывал не раз на вебинарах. Но раз задают, видно, пора подробнее рассказать про то, как настроить спецификацию Revit с разными единицами измерения.
Итак, имеем кровлю:


Настраиваем спецификацию:


Сортировка по параметру "Семейство и типоразмер". Вот что получается.


Теперь надо сделать так. чтобы в одном столбце для стропил отображалось количество, а для всего остального - общий погонаж (м.п.). Для этого создадим параметр "Единицы", а потом расчетное значение с условием: "если Единицы равно 0, то в ячейку пишем Длину, а если 1 - то пишем количество". На языке Revit это будет выглядеть так: if(Единицы = 0, Фактическая длина, 1)

А теперь последовательно. Добавляем новый параметр проекта "Единицы":


Заполняем значения этого параметра. Если надо считать погонные метры - пишем 0, если штуки - пишем 1.


Расчетное значение с формулой if(Единицы = 0, Фактическая длина, 1). 


Тут надо понимать, что для стропила (у него в параметре "Единицы" указано "1") формула будет возвращать число 1 (т.е. количество), а для обрешетки и лобовой доски (там "Единицы" = 0) формула будет возвращать Фактическую длину.
Вот, что получается:


Теперь надо сделать так, чтобы Revit просуммировал погонаж и штуки:


Собственно, в первом приближении это все. В столбце "Прим." отображаются штуки или погонные метры.
Но не все так просто, добавим еще один скат кровли с другими размерами:

Спецификация получается неправильная: есть 7 стропильных ног одной длины, и 7 - другой. А они все отображаются в одной строке. Почему так? Все просто, сортировка у нас только по "Семейство и типоразмер", без учета длины.


Если я просто добавлю сортировку по фактической длине, то стропила будут отображаться правильно, а вот обрешетка и лобовые доски - нет (хотя, кому как. для некоторых этого будет достаточно). 


В общем, моя цель - чтобы ВСЕ лобовые доски и обрешетка (разной длины) отображались в одну строку, а стропила разной длины - в разных строках.

Поэтому, воспользуемся хитростью: создадим еще одно расчетное значение, которое будет равно "Фактическая длина * Единицы"
Что произойдет? Для стропильных ног (Единицы = 1) формула вернет просто Фактическую длину, а для всего остального (Единицы = 0) формула вернет 0.


Теперь по этому параметру можно отсортировать. 


В результате сортировки в параметр "Сортировка" ВСЕХ экземпляров обрешетки и лобовых досок (независимо от длины) записалось значение "0", а для стропил записалась их Фактическая длина. Результат сортировки ниже.


То же, после скрытия некоторых столбцов.


Финальный результат.


Конечно, это достаточно простые формулы, без вложенных IF, но их хватает для большинства задач.

Проект со спецификацией можно скачать по ссылке (revit 2014)