Одной из самых больших преимуществ Revit является его работа со спецификациями. Благодаря множеству настроек и четкой логике программы можно создать спецификацию любой сложности. В этой статье я на конкретных примерах расскажу и покажу все особенности создания спецификаций в Revit.
Все примеры будут поделены на уровни сложности. Более легкие в реализации примеры будут в начале, более сложные в конце.
Небольшая вводная информация к примерам
Для примера создал семейство кубика с двумя типоразмерами «300*300*300» и «500*500*500».
Семейство отнес к категории «Обобщенные модели».
По мере усложнения спецификации я буду редактировать это семейство.
Уровень сложности 1 «Просто посчитать количество»
Представим у вас в проекте есть какой-либо элемент загружаемого семейства. Теперь представим, что вы разместили таких объектов столько, что сами забыли. А считать вручную стыдно, BIM все-таки же.
Расставил для примера свои кубики 2 видов
На данном этапе вы скорее всего и наткнулись на эту статью. Ну что же, начнем.
Спецификации в Revit можно заметить в диспетчере проекта. Для них есть отдельная группа.
Для того, чтобы создать свою спецификацию, необходимо перейти на вкладку «Вид» и на панели «Создание» найти кнопку «Спецификации».
Выпадающее меню «Спецификации»
Нажав на нее, перед нами появится список из нескольких видов спецификаций. Самыми востребованными являются спецификации 1 и 4. Начнем с 1 и создадим спецификацию количества элементов.
В открывшемся окне необходимо:
1. Определить категорию спецификации. Другими словами, если нужно посчитать семейства категории обобщенной модели, то необходимо выбрать категорию «Обобщенные модели». Если вам необходимо посчитать в одной спецификации семейства разных категорий, то выбирайте самую первую строчку «Несколько категорий». Таким образом, у вас получится спецификация нескольких категорий.
Узнать категорию семейства можно из диспетчера задач проекта, либо из свойств самого семейства.
2. В этом поле можно ввести имя новой спецификации. Потом его можно будет поменять.
3. Выбор стадии. Выбирать нужно ту стадию, к которой принадлежат объекты вашего подсчета. Из-за неправильного выбора стадии элементы могут не отобразиться в спецификации.
Нажав «Ок», откроется следующее окно.
В этом окне для начала нужно выбрать параметры, которые будут в новой спецификации. Если мы хотим посчитать количество кубиков каждого типа, то нам нужны параметры «Семейство и типоразмер», а также «Число».
Для того, чтобы параметр попал в спецификацию, его необходимо выделить (1), нажать на кнопку переноса параметра (2), и после добавления всех параметров нажать «Ок» (3).
Полученная спецификация
Получилось не совсем то, что мы хотели. Но не стоит опускать руки, сейчас начнется самое интересное и познавательное.
Время для знакомства с настройками спецификации!
Для начала, где они? - В окне свойств вида, у меня вот справа. Пять кнопок в конце свойств, которые ведут в одно и тоже окно, но на разные вкладки.
Условно показал, какая кнопка какой вкладке соответствует. Я в большинстве случаев не обращаю внимания на какую из кнопок я кликаю, потому что в итоге произвожу настройки параллельно на нескольких вкладках.
А теперь вернемся к нашим кубикам, а точнее к спецификации на эти кубики. У нас была проблема, что списком отобразились абсолютно все кубики в проекте, хотя нам нужно было отобразить общее количество по каждому типу кубиков.
Для исправления данной ситуации перейдем на вкладку «Сортировка/Группирование» и уберем галочку «Для каждого экземпляра».
Нажмем «Ок» и посмотрим, что получилось.
Выключенный «Для каждого экземпляра»
Вновь получилось не совсем то, что мы ожидали. Почему так произошло? Мы отключили параметр «Для каждого экземпляра» во вкладке «Сортировка/Группирование» и теперь Revit группирует все элементы по определенному признаку, а параметр «Число» считает количество элементов, группированных по этому же признаку. В первой колонке у элементов встречаются несколько разных значений, но так как ячейка одна, то Revit не выводит ничего.
Для решения этой проблемы, давайте настроим сортировку в этой же вкладке по параметру «Семейство и типоразмер» и посмотрим, что получится.
Чудо! Мы знаем сколько каких кубиков!
Уровень 1.5 «Без ADSK_Количество, Число, мам, пап и кредитов»
Странное название раздела, но оно того стоит. На этом примере у вас появится хорошее понимание основной логики подсчета параметров в спецификациях.
Предположим, что на все элементы нужно заложить запас. Допустим, процентов 17%. И все это нужно сделать в рамках Revit здесь и сейчас.
Для этого давайте познакомимся с расчетным параметром, который можно создавать в спецификациях. Чтобы его создать, необходимо перейти на вкладку «Поля» и кликнуть по кнопке со значком функции.
Откроется окно, в котором вы можете создать параметр, который может внутри себя содержать формулу, либо какое-либо значение. Для начала давайте просто попробуем вписать в него 1 и посмотрим, что получится.
Как видим, в колонке «Тест» все строчки имеют значение 1.
Теперь познакомимся со вкладкой «Форматирование».
На этой вкладке можно менять заголовки у параметров, определять ориентацию и многое другое. Сейчас нас интересует список внизу. Тут настраивается отображение данных в колонке параметра.
Значение «Не рассчитано» означает, что параметр будет выводится в явном виде. Например, «Тест» у нас имеет значение 1. Поэтому Revit и выводит значение 1.
Если поставить «Вычислять итоги», то Revit будет складывать значения всех элементов в строке и выводить в ячейку итог. Это как раз-таки то, что нам нужно.
Значения в колонке параметра «Тест» с включенным вычислением итогов соответствуют значениям из колонки «Число»
Давайте рассмотрим детально как это произошло. Параметр «Тест» у всех элементов имел значение единицы. В первоначальном виде, когда мы настроили группировку по семейству и типоразмеру и не выбрали «Вычислять итоги» во вкладке «Форматирование», в спецификацию выводилось значение этого параметра. То есть, если у Кубика 300х300 значение было «1», то в спецификацию и выводилась «1». И все равно, что таких кубиков 16.
Когда мы выбрали у колонки Тест «Вычислять итоги», то Revit посчитал в спецификации сумму значений параметров «Тест» всех элементов строки. Другими словами, он просто сложил все значения «Тест» элементов строки. Например, для Кубика 300х300 это выглядело так: 1+1+1+1+…+1+1=16 (16 раз складывается значение параметра).
Если непонятно, то лучше перечитайте от начала этого пункта. А сейчас мы перейдем к первоначальной задаче – посчитать количество кубиков с запасом 17%.
Так как нельзя задать коэффициент и умножить его на значение итога, полученное при помощи «Вычислять итоги», то зададим запас на каждый элемент. То есть, если нужен запас в 17%, то зададим параметру «Тест» значение 1.17. Тогда 1.17 будет складываться и в итоге мы получим то же самое, что если бы умножили итог на 1.17:
1.17+1.17+…(складываем N раз)….+1.17 = 1.17 * (N)
Изменение уже созданного расчетного параметра.
Посмотрим, что получилось:
Тест = 1.17.
Для начала проверим правильность спецификации: умножим значение из колонки число на 1.17 и сравним со значением из колонки тест.
Вычисление корректные, теперь нужно правильно их представить в виде целых чисел. Тут есть два пути:
1. Настроить форматирование единиц к колонке «Тест»;
2. Достаточно сложный для понимания способ округления вверх до целого.
Сейчас рассмотрим первый путь, второй способ рассмотрим в следующем пункте.
Для начала откроем окно «Форматировать единицу». Сама кнопка его открытия находится над спецификацией, но для ее активации сначала необходимо выделить столбец, в котором необходимо отредактировать формат единицы.
Как открыть
Что настроить
После открытия снимаете галочку с «Настройки по умолчанию». Выбираете тип единицы «Фиксированные». Далее задаете величину округления «0 десятичных знаков». Таким образом, у вас получится округлять значения согласно математическим правилам.
Спецификация с округлением по математическим правилам.
Такой способ округления плох тем, что может округлять и в меньшую сторону. Если ваш коэффициент запаса может такое терпеть, то вариант рабочий, если нет, то в следующем пункте мы рассмотрим округление до целого числа вверх.
Уровень 2 «Сложные трудности»
Как было сказано в предыдущем разделе, в этом мы рассмотрим, как округлять расчетный параметр «итого» (в нашем случае «Тест») до целого числа вверх.
Расчетные параметры позволяют внутри себя производить различные операции преобразования. Например, можно использовать разные операторы:
Условия - if(условие, значение при выполнении условия, значение при невыполнении условия)
Округления – round(), roundup(), rounddown()
Арифметических действий - *,/,+,- и так далее.
Все точно так же, как и в параметризации семейств.
Давайте попробуем использовать оператор roundup(), который позволяет округлять числа до большего целого. Для чистоты эксперимента создадим дополнительный параметр «Округление вверх».
Создание дополнительного расчетного параметра.
Вот что получилось.
Мне кажется, или нас пытаются обмануть…
Включим «Вычислять итоги» в новой колонке и посмотрим, что получится.
Нас обманывают! (для чистоты эксперимента отключил округление в «Тест»)
Как видно в спецификации, после включения «Вычислять итоги» у колонки с округлением вверх, мы получаем неприлично большие результаты. Так почему же так происходит?
Здесь мы сталкиваемся с важной особенностью и отличием спецификации в Revit от тех же таблиц Excel. В Revit происходит вычисление согласно значениям параметров элементов модели. Если в параметр содержит в себе единицу, то все манипуляции в расчетном параметре будут производиться с этой единицей. И все равно, что там стоит «Вычислять итоги». Revit все равно будет считать исходя из значений параметров элементов.
В связи с этим мы не можем использовать значения, полученные при помощи вычисления итогов и просто умножать их на какое-либо число. В том же Excel мы вольны делать с числами что угодно, потому что их значения записываются в ячейку. В Revit значения постоянно вычисляются заново исходя из значений параметров в элементах модели.
Но, не начинал бы я эту статью, не зная, как это обойти. Самое время познакомиться с процентами в расчетных параметрах!
Для начала сама идея. Так как я не могу использовать значение «Вычислять итоги», то мне нужно записать в каждый элемент значение его общего количества в проекте. Другими словами, каждый элемент в себе будет иметь информацию о том, сколько таких же как он. В дальнейшем с этим значением я могу делать что угодно, потому что оно будет записано в каждый элемент и постоянно пересчитываться.
Вернемся обратно к процентам. Если я узнаю какой процент составляет элемент от его общего количества, то путем деления 1/% смогу узнать количество, из которого этот процент высчитывается. Если непонятно, то дальше я покажу это наглядно.
Наглядное отображение кубиков и их процентов.
Разобравшись с теорией, приступим к ее реализации в Revit.
Создадим параметр N = 1.
N=1
Узнаем какой процент эта единица будет составлять от общего числа «таких» единиц. Для этого создадим расчетное значение через процент от параметра N по имени и типоразмеру семейства. Для того, чтобы создать такой параметр, нужно поставить метку напротив «Процент».
Процент N от всех N в этом типоразмере.
И наконец, создадим последний параметр, который будет делить единицу на полученный в предыдущем шаге процент.
1/N%
Что получилось в итоге.
Последний столбец содержит в себе заветное число.
Для наглядности включу «Для каждого экземпляра».
«Для каждого экземпляра» включен.
Как видно из этой спецификации, общее количество элементов записалось в каждый элемент. Уже с этим числом (1/N%) мы можем делать что угодно и получать корректные значения.
Создадим параметр «Количество с запасом».
Исправим параметр «Округление вверх»: формулу и поставим «Не рассчитано» вместо «Вычислять итоги». Также выключим для «Для каждого экземпляра».
Исправленный параметр «Округление вверх» (не забудьте отключить «Вычислять итоги»!).
Вот что получилось.
Наш первоначальный «Тест» совпадает с «Количество с запасом», а это значит, что общее количество элементов с учетом запаса определяется правильно. «Округление вверх» теперь тоже работает правильно, округляя до ближайшего целого числа.
Скроем ненужные колонки путем установки галочки «Скрытое поле».
Скрытие ненужных полей.
Скрыл ненужные поля.
Что дальше?
В следующей статье я рассмотрю вопросы, связанные с оформлением спецификаций, где также покажу несколько лайфхаков.
Автор статьи: BIM менеджер ООО "АМКАД" rsaraev@amcad.ru
Ринат Сараев