Обновление шаблона 1.6

На самом деле, обновление появилось уже давно, но всё руки не доходили оформить и выложить.
Добавил несколько полезных штук: подсчет количества металла на узлы при помощи «условных узлов», размеры арматурных хомутов по внутренним граням, исправил ошибки в спецификациях.

Качать обновление 1.6 — яндекс, гугл. Открывайте этот файл и копируйте семейства и спецификации в свой проект. Но имейте в виду, это не полноценный шаблон, а только обновление, основной шаблон здесь.

UPD: эти версии шаблона устарели, актуальный шаблон Weandrevit 2020 тут.

«Условные узлы»

Отсутствие стандартного функционала по созданию узлов металлоконструкций — известная проблема Revit. Конечно, при помощи «групп» или редактора семейств можно создавать свои узлы, но очень уж много с ними ручной работы. Да, есть Revit 2017 с функционалом по созданию узлов, но там с них не получить спецификации металла — совсем беда!
К счастью, мы всегда можем найти обходные пути для решения задачи. Например, можно не моделировать узел, а создать некий контейнер, который содержал бы информацию о количестве металла на данный узел, и копировать по модели уже этот «контейнер». Детализацию узлов можно выполнить при помощи 2D элементов,  нарисовать фасонки на одном узле «моделью в контексте», или вообще взять готовый узел из Автокада.

Про идею я рассказывал на University в прошлом году (с 45 минуты):

Благодаря такой системе:
— можем визуально контролировать, учтен ли узел в данном соединении;
— получаем информацию на узлы по всему зданию;
— можно начинать размещать узлы в модели можно еще до того, как есть расчет узлов — указать массу металла можно в любой момент через спецификацию. Узел без назначенной массы будет «незрелым» — зеленым, и станет «спелым» — красным после того, как в него будет указан расход металла;
— в случае, если одинаковая сталь (например лист t20/С245) применяется и в узлах, и в сварных балках — в спецификации металлопроката будет выведен суммарный расход;
— нет необходимости создавать большую библиотеку узлов — на все случаи жизни достаточно одного семейства;
— в семейство вложен параметр номера узла, можно использовать этот параметр для маркировки узлов на схемах и разрезах, вести библиотеку и учет узлов (экспортировать типоразмеры в txt-файл и использовать в других проектах), также этот номер выводится 3D-надписью на самом узле;
— при необходимости можно комбинировать моделирование узлов при помощи 3D-семейств (например, для типовых узлов) и при помощи «условных» узлов (для нетиповых узлов, которые трудоемко моделировать в 3D) — в спецификации металла всё будет собираться вместе.

Вот так выглядят эти «условные узлы»:

Раскидываю их по модели:
Спецификация для контроля типов узлов и расхода металла на них:

Там ничего сложного, думаю разберетесь.

Техническая спецификация металлопроката

ТСМ немного изменена для возможности подсчета массы металла в «условных узлах» — добавлен «Способ подсчета массы №5 — готовое значение из элемента»:

if(КМ.СпособПодсчетаМассы = 0, 0, if(КМ.СпособПодсчетаМассы = 1, Рзм.ДлинаБалкиИстинная * КМ.МассаПогМетра / 1000 мм, if(КМ.СпособПодсчетаМассы = 2, Рзм.Длина * КМ.МассаПогМетра / 1000 мм, if(КМ.СпособПодсчетаМассы = 3, Рзм.Толщина * Рзм.Ширина * Рзм.Длина * 7850 / (1000 мм * 1000 мм * 1000 мм), if(КМ.СпособПодсчетаМассы = 4, 0, if(КМ.СпособПодсчетаМассы = 5, Орг.МассаИзделия, 0))))))

Также была обнаружена ошибка в формуле подсчета массы с округлением «как вручную»:

if(Масса > 100, 0,01 * roundup(Масса / 10), if(Масса > 10, 0,001 * roundup(Масса), if(Масса > 1, 0,0001 * roundup(Масса * 10), 0,0001 * roundup(Масса * 100))))
 

Один нолик пропустил! Тут должно быть 0.00001. Хотя вряд ли встречаются конструкции массой менее 100 грамм, но в любом случае в обновлении формула исправлена.

Определение размеров гнутой арматуры

Есть такая проблема — для хомутов нужно выводить размер в ведомости деталей по внутренней грани, а Ревит выводит по внешней. Значит, надо вычесть из размеров два диаметра арматуры, причем сделать это только для хомутов.
Для реализации этой задачи я добавил во все семейства форм арматуры дополнительный параметр «Арм.ДлиныУчастковИзСемейства», это параметр «Да/Нет». Для обычной гнутой арматуры этот параметр отключил, а для хомутов — включил. Также добавил в семейство формы два параметра «Арм.РазмерА» и «Арм.РазмерВ». Для параметров назначил формулы:

В спецификации написал формулу расчетного параметра «Aрасчетный»:

if(Арм.ДлиныУчастковИзСемейства, Арм.РазмерA, A)

Таким образом, если нас устраивают те размеры, которые Ревит выдает автоматически (А, В и тд) — надо только добавить в семейство формы арматуры параметр «Арм.ДлиныУчастковИзСемейства» и отключить его; иначе можно включить параметр и вычислить нужные размеры при помощи формул.

UPD: в актуальном шаблоне я от такого механизма отказался т.к. теперь можно определять значения A, B, C формулой напрямую.

Исправления спецификации арматуры

Немного усовершенствовал спецификацию арматуры. Первое — нашел ошибку при вычислении коэффициента нахлеста для диаметра более 32мм (коэффициент 0.9). Исправленная формула параметра КоэффНахлеста:

1 + round((1,2 * Rs * (ДиаметрРасчетный / 1 мм)) / (2,5 * if(ДиаметрРасчетный > 32 мм, 0,9, 1) * Rbt * 4)) / 11750

И еще немного изменил сортировку, теперь вся арматура в погонных метрах выводится в первых строках:

Ведомость расхода стали — исправлено округление

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

Конечно, расхождение на пару процентов при грубом расчете «погонными метрами» — мелочь, но хорошо бы исправить. Теперь вот так:

«Спецификация арматуры» тоже немного изменена (изменено округление и формула в расчетном параметре «ДлинаРасчетнаяДляСпец»). Короче, качайте новые спецификации, и не забывайте в будущем хотя бы один раз проверять их с калькулятором!