Расскажу о своей разработке BIM-моделей канализационных систем для компании Ostendorf. Библиотеки разработали для Ревита и для Ренги. Для вас они бесплатны.

Примеры семейств из библиотеки Ostendorf

В разработку вошли все системы, которые компания продаёт на территории России:

  • бытовая канализация HT, серая,
  • бытовая канализация HTw, белая,
  • бытовая канализация малошумная Skolan,
  • наружная канализация KG, оранжевая,
  • наружная канализация усиленная KG2000.

Всего в библиотеке 62 диаметра труб и 677 типоразмеров фитингов для них. Все семейства в Ревите 2019. Также есть скрипт, с помощью которого пользователь сможет заполнить данные для спецификации. Всё работает на параметрах ADSK и совместимо с шаблонами ADSK.

Ещё есть инструкция, которую вы, конечно же, обязательно внимательно прочитаете, ага.

Особенности библиотеки

Всё стандартно для моих последних разработок. Есть фитинги, которые применяются в настройках трассировки, и есть фитинги, которые нужно ставить на открытый соединитель другого элемента. Например, обычный отвод с двумя раструбами ставится автоматически при трассировке системы. А вот сифонный отвод нужно вставлять ручками.

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

Крестовины

При разработке этих моделей я много времени потратил на крестовины, потому что для них сложно придумать удобный интерфейс по работе. Проблема такая, что формально у крестовины выходы под углом 87 градусов, на монтаже в реальности там можно повернуть трубу и под другие углы, а в Ревите всё диктуется уклонами выходящих труб.

При этом мы не можем жёстко формулами зафиксировать положение соединителей. У крестовин есть приоритет в получении направления, и его отдали направлениям, которые крестовина получает с труб. То есть я могу заблокировать все параметры формулами, но Ревит всё равно изменит угол ответвлений на то значение, которое получит с трубы. И плевать ему на формулы мои.

Поэтому не получается сделать интерфейс, в котором пользователь выбирает нужный его угол выхода. Так как любой такой интерфейс будет организован формулами, а формулы Ревит игнорирует при построениях. А кроме угла у нас есть ещё и фактическое значение уклона, которое нужно учитывать. Например, при уклоне 0.02 угол будет не 87 градусов, а 88.5°. То есть для крестовины с «каталожным» углом 87° будет фактически не один угол, а несколько разных в зависимости от конкретного уклона выходящей трубы.

При этом есть крестовины на 67 и 45 градусов, и там такой проблемы нет, так как трубы выходят, конечно, с уклоном, но корректировку на угол давать не надо. Так что получается каша из углов, а формулами, опять-таки, решить вопрос не получается.

В итоге решил сделать так. Пользователь будет строить на стояке тройник с трубой под нужным углом. Далее через «плюсик» преобразует тройник в крестовину. Угол будет наследоваться с крестовины и будет равным для обоих ответвлений крестовины. Дальше строим уже трубы в стороны с нужными уклонами, крестовина подстроится.

Если вдруг ломается, а такое иногда бывает, то в свойствах есть подсказка, какой угол нужно вбить в параметры крестовины, чтобы из неё строилась труба под правильным уклоном. При этом важно удалить трубы из ответвлений крестовины, только в этом случае разблокируется параметр «Угол построения». В параметр «Уклон ответвления» нужно вбить требуемый уклон в процентах, в «Угол для уклона» будет значение, которое нужно ручками вбить в «Угол построения». Вот такая тема.

Параметры крестовины. Угол построения разблокирован, так как труб на ответвлениях нет

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

Автоматизация

Здесь решал две задачи:

  1. Необходимость заполнять данные трубопроводов для спецификаций, это наименование, количество, масса и артикул.
  2. Произвести подсчёт на выбор пользователя штуками или метрами.

Первая задача достаточно простая и её не решить плагином из шаблонов ADSK, так как он не запишет артикулы и массу. А для производителя важно, чтобы в спецификацию попал артикул.

Вторая задача интереснее. Если считаем метрами, то тут нет трудностей, взяли длину и перевели в метры, записали в трубу. А вот если считаем штуками, то тут начинается веселье.

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

При этом надо понимать, что речь идёт не про трубы длиной полметра, это канализационные трубы, они длиной по три, а то и пять метров. Поэтому в модели их будет, скорее всего, не так чтобы очень много. Значит, пользователь при желании и необходимости считать штуками сможет сам вручную разбить трубы длиной больше максимальной длины для данной системы труб.

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

Например, если максимальная длина трубы 3000 мм, длина в модели — 2600. В спеку уйдёт одна труба длиной 3000 мм. Если длина трубы в модели 5000 мм и пользователь её не разделил, то в спеку пойдёт две трубы по 3000 мм, потому что 5000/3000 = 2 с округлением вверх. Поэтому тут надо быть внимательным, так как труба длиной 3100 мм тоже запишется как две трубы по 3000 мм, то есть будет очень большой запас.

Я бы мог логически подобрать комбинацию труб как 3000 и 500 мм, например. Но мы не можем делить один объект БИМ-модели на две и более позиций в спецификации. Поэтому — либо делите руками, чтобы было точнее, либо потенциально получайте большой запас на количество трубы.

Скачать библиотеку

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

Примеры систем в Ревите