Семейства элементов ОВ и ВК в Autodesk Revit. Часть 5. Фитинги с раструбными соединениями

Картинка1v41-1280x883.jpg

Как известно, в Revit отсутствует дифференциация типов соединений деталей инженерных систем (кроме, разве что, фланцевого соединения, которое реализовано неудобно и практически не пригодно к автоматизированному использованию при моделировании трубопроводов). И если выделение в отдельный тип таких соединений, как резьбовое или сварное, в целом не востребовано, то отсутствие раструбных фитингов — это существенный недостаток.

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

Стандартный набор раструбных фитингов годится лишь для грубого учета материалов и условной отрисовки систем

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

Ниже на примере отвода (колена) канализационного из ПВХ представлено одно из решений данной задачи, отличительной особенностью которого является, насколько это возможно, простота параметризации.

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

Как видно, «тело» сформировано двумя элементами сдвига, ось одного из которых совпадает с проекцией фронтальной плоскости, а другого — отклонена относительно этой проекции на определенный угол. Отклоняемая ось при этом неподвижным концом закреплена одновременно на проекциях фронтальной и профильной плоскостей — это позволяет избежать ошибки при присвоении углу значения 90 градусов. Зазор между элементами сдвига заполнен элементом вращения, представляющим собой поворот полукруга радиусом, равным радиусу профилей элементов сдвига, на угол отклонения второго элемента сдвига (см. скриншот ниже).

Длина элементов сдвига задается соответствующими параметрами в зависимости от конфигурации фитинга (о чем подробнее ниже). Выступающие элементы этих тел при их взаимном пересечении подрезаются полыми элементами выдавливания (они мешают определению плоскостей, на которых размещены коннекторы).

На скриншотах выше «тело» фитинга показано без раструбов. Именно оно является параметризованной геометрией в данном семействе (размеры формирующих его элементов задаются зависимостями). Раструбы же имеют гораздо более сложную форму, поэтому выполнены в виде вложенных семейств и подгружаются в нужном виде в зависимости от конфигурации фитинга.

Раструбы целесообразно выполнять в виде вложенных семейств

Ниже показано одно из таких вложенных семейств раструбов:

Как видно, оно представляет собой обобщенную модель на основе грани, состоящую из двух элементов вращения, один из которых является зеркальным отражением другого. Видимость этих элементов задается соответствующими параметрами экземпляра:

Семейства раструбов размещаются на тех же плоскостях «тела» фитинга, что и коннекторы (именно для этого они выполнены в виде моделей на основе грани). Всего в семействе рассматриваемого фитинга два вложенных семейства раструбов, что соответствует перечню его диаметров по каталогу производителя — 50 и 110 мм:

А теперь суть «трюка» по отображению вложенных семейств раструбов: раз оба раструба должны «смотреть» в одну сторону, то для одного из них значение параметра Видимость1  должно быть истинным, Видимость2 — ложным, а для другого — наоборот, Видимость1 ложным, Видимость2 — истинным. Так как Revit может изменять последовательность коннекторов в отводе в зависимости от направления поворота трубопровода, должна быть также предусмотрена возможность преобразования отвода в «отраженный», у которого значения параметров Видимость1 и Видимость2 для каждого раструба меняются местами:

Это преобразование реализуется через параметр экземпляра типа «да/нет». Переключение нормального/отраженного вида фитинга осуществляется вручную.

Направление раструбов при нормальном и «отраженном» отображении отвода задается вручную параметром-переключателем

Следующая механика, которая должна быть реализована в данном фитинге, — возможность отключения отображения одного из раструбов, чтобы получить отвод с гладким концом (т.е. форму, соответствующую реальному виду данного изделия). Это нужно для того, чтобы при сборке некоторых узлов из данных фитингов (например, поворот из двух отводов) раструбы соседних отводов не наезжали друг на друга. Чтобы сделать вышеописанное, нужно присвоить значение «ложь» обоим параметрам, отвечающим за видимость раструба, расположенного со стороны гладкого конца фитинга, а также удлинить элемент сдвига, формирующий «тело» отвода с этой стороны:

За реализацию функции также отвечает параметр экземпляра типа «да/нет», задаваемый вручную.

Отображение раструба со стороны присоединения трубы или гладкого конца отвода задается вручную параметром-переключателем

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

Параметры экземпляра Отраженный и Раструб трубы задаются вручную, и на основании их значений формируются значения параметров:

  • ВидимостьРаструба1Нормальный
  • ВидимостьРаструба1Отраженный
  • ВидимостьРаструба2Нормальный
  • ВидимостьРаструба2Отраженный

Параметры вложенных семейств раструбов связаны с вышеперечисленными: ВидимостьРаструба1Нормальный и ВидимостьРаструба1Отраженный задают значения параметров Видимость1 и Видимость2 первого раструба, а ВидимостьРаструба2Нормальный и ВидимостьРаструба2Отраженный — этих же параметров второго.

Что касается длин траекторий элементов сдвига, формирующих «тело» фитинга, то за определение этих размеров отвечают параметры Длина1 и Длина2 — соответственно, для элемента сдвига на проекции фронтальной плоскости и отклоняемого на заданный угол. Значения данных параметров выбираются из таблицы имен по таким зависимостям:

  • Длина1 = if(Отраженный, size_lookup(ТаблицаИмен_Размеры, «Длина3», 0 мм, Диаметр, МаркерУгла), if(Раструб трубы, size_lookup(ТаблицаИмен_Размеры, «Длина2», 0 мм, Диаметр, МаркерУгла), size_lookup(ТаблицаИмен_Размеры, «Длина1», 0 мм, Диаметр, МаркерУгла)))
  • Длина2 = if(not(Отраженный), size_lookup(ТаблицаИмен_Размеры, «Длина3», 0 мм, Диаметр, МаркерУгла), if(Раструб трубы, size_lookup(ТаблицаИмен_Размеры, «Длина2», 0 мм, Диаметр, МаркерУгла), size_lookup(ТаблицаИмен_Размеры, «Длина1», 0 мм, Диаметр, МаркерУгла)))

В таблице имен величина Длина3 — это значение, соответствующее длине цилиндрического участка «тела» отвода от центра до раструба (со стороны раструба), Длина2 — от центра до торца раструба трубы со стороны гладкого конца, а Длина1 — от центра до торца отвода со стороны гладкого конца. Эти величины могут быть определены и внесены в таблицу имен по чертежам фитинга в каталоге производителя:

МаркерУгла — один из параметров поиска в таблице имен, который формируется в зависимости от текущего значения угла при построении отвода и принимает одно из фиксированных значений, соответствующих номенклатуре производимых отводов по каталогу (30, 45, 67 или 90 градусов). Уравнение, определяющее значение этого параметра, «прощает» незначительные отклонения значений угла от каталожных, но отсекает фитинги, у которых это отклонение превышает заданные пределы. Это нужно для того, чтобы, во-первых, однозначно определить исполнение конкретного экземпляра отвода (не только по диаметру, но и по углу) и, во-вторых, не допустить попадания в спецификацию экземпляров с неверными значениями угла.

Параметр ADSK_Наименование, как и для фитингов, описанных в предыдущих статьях, задается через функцию size_lookup в зависимости от диаметра и вышеописанного параметра МаркерУгла и содержит полное техническое описание экземпляра. Например:

Отвод канализационный СТАНДАРТ, 50 x 30°

Подробно о принципе формирования параметров для спецификаций рассказано в части 3 данного цикла статей.

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

Александр Котеленец

Ведущий инженер-проектировщик ВК, BIM-координатор