Ведомость расхода стали в Revit

Я думал, что вопрос ведомости расхода стали в Ревите уже решен, вот, я ведь даже готовые файлы выкладывал. Но нет — поток вопросов не прекращается, а многие вообще думают, что эту ведомость делают пустой табличкой и вставляют туда цифры вручную.

Нет, у нас всё будет по-честному:

Как сделать такое в Ревите? :)

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

По желанию можете смотреть инструкцию с картинками, видео в конце статьи или скачать готовый файл.

Итак, начинаем.

Подготовительные действия

Для начала нужно создать параметр, который будет хранить класс арматуры. Создаю параметр проекта, для категории «Несущая арматура», «целое», для «типа».
Лучше создавать «Общий параметр» — пригодится в будущем, но пока неважно.

Указываю для арматуры соответствующий класс:

Такое нужно сделать для каждого типа.

 

Создаем параметр подсчета массы

Заходим — Вид — создать спецификацию.

Добавляем поля: Диаметр стержня, Длина стержня, Количество, наш созданный параметр КлассАрматуры, а также параметр, по которому мы будет разделять конструкции — например, Комментарий.

Теперь определимся со способом подсчета массы. Кто-то создает параметр «Теоретическая масса» и указывает его для арматуры, кто-то вычисляет массу через объем арматуры, кто-то — через диаметр и объемный вес… Я использую другой способ — через мои любимые «if-цепочки».

Создайте расчетный параметр «МассаПогМетра» с формулой:

if(Диаметр стержня = 6 мм, 0.222, if(Диаметр стержня = 8 мм, 0.395, if(Диаметр стержня = 10 мм, 0.617, if(Диаметр стержня = 12 мм, 0.888, if(Диаметр стержня = 14 мм, 1.208, if(Диаметр стержня = 16 мм, 1.578, if(Диаметр стержня = 18 мм, 1.998, if(Диаметр стержня = 20 мм, 2.465, if(Диаметр стержня = 22 мм, 2.984, if(Диаметр стержня = 25 мм, 3.85, if(Диаметр стержня = 28 мм, 4.83, if(Диаметр стержня = 32 мм, 6.31, if(Диаметр стержня = 36 мм, 7.99, if(Диаметр стержня = 40 мм, 9.865, 0))))))))))))))


Идея, думаю, понятна — мы просто принудительно подставляем нормативное значение в зависимости от диаметра. Если не хватает диаметров — добавьте, и не забывайте проверять количество скобочек.

 

Создаем столбцы для спецификации

Теперь нам нужно создать столько столбцов для спецификации, сколько будет типов арматуры в проекте. Мы используем только А240 и А400, нужные создадите сами для себя.
Создаем расчетный параметр «6 А240», типа «число», с формулой:
if(and(Диаметр стержня = 6 мм, КлассАрматуры = 240), Количество * Длина стержня * МассаПогМетра / 1000 мм, 0)
 
Делить на 1000мм нужно потому, что я использую безразмерный параметр, а «Длина стержня» имеет размерность длины — нужно сократить «мм».
Что делает эта формула? Параметр «if» здесь будет работать непривычно — как фильтр, и в столбец будут попадать только элементы, удовлетворяющие условию. Попробуйте нажать Ок, поставить в проекте несколько различных стержней и посмотреть, что получится в спецификации:

 

Для наглядности я добавил столбец «Семейство и типоразмер».
Видно, что если арматура не «6 А240» — в ячейке будет 0, но для d6 А240 — выводится суммарная масса.
Теперь создаем столбцы для других диаметров класса А240:
Теперь нужно создать столбец для суммарного расхода арматуры А240. Используем формулу:
 
if(КлассАрматуры = 240, Количество * Длина стержня * МассаПогМетра / 1000 мм, 0)
Как оно работает — надеюсь, понятно: собирается арматура класса А240 любого диаметра.
По тому же принципу создаем столбцы для других классов арматуры.
Для столбца «Всего» используем формулу вообще без «if»:
Количество * Длина стержня * МассаПогМетра / 1000 мм
 
В итоге получится что-то вот такое:
Конечно, уже можно отключить в этой спецификации все линии, вынести спецификацию на лист и наложить сверху какое-нибудь 2D-семейство — но это не наш путь :)
Попробуем привести ВРС к нормальному виду средствами Ревита.

Приводим ведомость к привычному виду

Во-первых, перенесем вспомогательные столбцы в конец и скроем их:
На вкладке «Форматирование» задаю правильные заголовки (значок диаметр можете скопировать тут: ø6)
Там же на вкладке «Форматирование» включу для каждого значения галочку «Вычислять итоги» и задам округление:
Включу сортировку по параметру «Комментарий» и уберу галку «Для каждого экземпляра»:
Что-то похожее на правду получается!

Группируем столбцы

Обратите внимание — нужно выделять именно заголовки столбцов. Выделять удобнее всего перетаскиванием, зажали мышкой первый заголовок — перетащили до последнего. Вписываем в полученный заголовок Гост.
Еще раз выделяем те же столбцы и создаем следующий уровень группировки:
Вписываем в этот заголовок «А240». Повторяем то же для других классов арматуры.
Задаю следующие уровни группировки:
Ну как-то так! С первого раза может и не получиться — внимательно смотрите на скриншоты!
Проверяем, что получилось — вынесем на лист:

Продолжаем допиливать

Укажу для всех столбцов выравнивание по ширине и высоте по центру:
Задам ширину столбцов. Их у меня 15шт, 15х12мм — 180мм. Выделяю все стобцы и задаю общую ширину 180мм — все столбцы выровняются:
Отключу привязку заголовка спецификации к названию:
Отключаю границы у заголовка спецификации:
На вкладке «Вид» отключаю «Пустую строку», задаю стиль текста:
Выделю и скрою пустые столбцы:
Ну и что-то такое:
Да, в пустых ячейках вместо прочерков — нули, но тут уж ничего не поделаешь.
Главная проблема — в том, что при появлении новой арматуры оно может попасть в скрытый столбец — например, в моем случае — d20 А400. Поэтому перед печатью листа я рекомендую нажать кнопку «Показать все» и снова скрыть пустые столбцы:
Времени много не занимает. Зато всё остальное отлично работает!
Видео пока еще не готово, но зато есть файл примера — качайте с яндекс-диска или гугл-диска.
При копировании спецификации в свой файл нужно только заново задать для арматуры параметр «КлассАрматуры» — должно работать сразу.
Удачи!