Расскажу о разработке BIM-моделей коллекторов для систем отопления. В библиотеке два вида коллекторов: этажные для отопления квартир и индивидуальные для отопления коммерческих помещений. Это условное деление в зависимости от размещения узла учёта тепла, для простоты буду делить так.
Что могут эти семейства:
- выбор из трёх диаметров коллекторов: 32, 40, 50;
- выбор диаметра подключения коллекторов: 15, 20, 25, 32;
- выбор количества отводов (выходов) из коллектора: от 2 до 12 или 11, если на последнем отводе дренаж;
- выбор диаметра отводов: 15 или 20 для всех отводов;
- левое или правое исполнение;
- выбор диаметров балансировочной арматуры, независимо для автоматического и ручного клапана, при этом ручной клапан можно отключить;
- выбор типа воздухоотводчика: кран Маевского или автоматический воздухоотводчик;
- для этажного коллектора можно выбрать теплосчётчик комплектный или ремонтную вставку, для индивидуального коллектора выбор между комплектным счётчиком, ремонтной вставкой или вообще без них;
- управление относительным положением подающей и обратной труб коллектора.
Если вам нужны семейства и неинтересно читать о нюансах разработки, то мотайте в конец, там будет ссылка на скачивание. Дальше буду рассказывать про особенности семейств.
Особенности разработки
У этих коллекторов есть несколько важных моментов, которые повлияли на подходы к созданию:
- Разные виды дренажа: без него, с дренажом через отвод или с дренажом через тройник, когда общее количество отводов не уменьшается, а воду сливают через тройник и кран сбоку.
- Нужно менять состав и диаметры как арматуры на подводящих патрубках, так и на отводах.
- Из-за второго пункта количество возможных артикулов превышает 300 тысяч на один коллектор.
Один момент облегчал работу: решили, что диаметры отводов будут все одинаковые, они не будут меняться независимо. Тут всего два варианта: либо все отводы 15, либо 20.
Поскольку речь идёт про коллекторы, то тут же сталкиваемся с необходимостью управлять количеством отводов (выходов) и видимостью соединителей. Как это сделать, рассказывал в отдельном материале. Так как сами отводы одинаковые, то массивы подходят для решения задачи. Их и применял.
Но всё же задача ещё более сложная: у коллектора есть исполнение, при котором все отводы одинаковые, кроме последнего — на нём стоит тройник и точка подключения смещается ниже. У себя в Телеграм-канале спрашивал, как можно решить такую задачу. Получил несколько ответов, один был корректным, но в итоге я сделал немного иначе. Не лучше и не хуже, просто иначе.
Таким образом, у меня есть три исполнения коллектора с отличиями в выходах, поэтому массивами управляю чуть-чуть по-разному:
- Когда нет дренажа, то это самый простой вариант, каждый отвод — элемент массива, на нём размещаю соединители. В проекте они будут скрываться при уменьшении количества отводов.
- Когда есть дренаж через отвод с краном, всё тоже просто: массив уменьшается на один элемент, дренажный отвод оставляю без соединителя.
- Когда появляется тройник, то по сути есть два варианта решения задачи. Про них ниже.
Первый вариант, который мне предложили 2 или 3 человека, довольно простой и изящный, я бы в итоге рекомендовал делать именно так. Суть следующая: для типовых отводов (которые без тройника) соединители назначаем массивом, а на отвод с тройником ставим соединитель, который не будет никак скрываться, ведь этот отвод всегда будет у коллектора.
Но нужно что-то делать с коллектором, когда у него будет 2 выхода. В этом случае у нас остаётся только один типовой отвод и один отвод-тройник. Нельзя сделать в массиве один элемент до 2025 Ревита, а сделать вроде как нужно. Или нет?
По факту — нет, ведь можно пойти на некоторую хитрость: мы можем сделать массив с количеством элементов на один больше, чем нужно типовых отводов, а соединитель ставить не с первого элемента массива, а со второго. В итоге соединителей будет ровно по числу типовых отводов, но когда я уменьшу количество отводов коллектора до двух, то в массиве тоже будет два элемента, просто на первом изначально никакого соединителя и не было. Он нужен только для того, чтобы не ломался массив.
В итоге элементы массива скроются, у вас останется один соединитель. А второй будет постоянным с отвода-тройника Красиво? Красиво. Один минус — нам нужна для массива геометрия, которую не будет видно в проекте, то есть сами отводы для этого использовать нельзя. Но и тут можно сэкономить, я так и сделал в своём способе.
Итак, что сделал я. Мы не можем уменьшить количество элементов в массиве до одного и не можем сделать массив из нескольких элементов, а потом последний элемент сместить. В этом случае все элементы, а за ними и соединители, равномерно сместятся. Но если у нас будет только два элемента в массиве, то мы можем сместить второй элемент, ничего не разъедется, ведь первый соединитель останется там, где был, а второй переместится в нужное положение.
В итоге я сделал массив, у которого при двух отводах второй элемент смещается вниз так, чтобы соединитель был в нужной мне точке. Это классно, но когда элементов больше двух, такой трюк не провернуть. Поэтому в семейство вложенного отвода-тройника я засунул ещё один массив, который меняет количество элементов от 2 до 3. Когда 3 — появляется соединитель, когда 2 — скрывается. По сути, это первый способ, но не для всего коллектора, а для одного отвода.
Основной массив в коллекторе я не мог делать на самих отводах, ведь при двух выходах должен остаться видимым только один типовой отвод. Но соединителям нужна основа и для неё я взял — вложенное семейство типового отвода. У меня они ведь и так вложены, они мне нужны, но можно взять типоразмер и убрать его видимости. В итоге в проекте его не видно, а как основа он работаетю
Так я чуть-чуть сэкономил и не стал делать ещё одно вложенное семейство для основы соединителя. Это и смещение второго элемента массива — две фишки, которые можно использовать, если они решают вашу задачу. В остальном же способ более трудозатратный, чем тот, что мне предложили в комментах. Но и тут можно применять мой лайфхак: брать как основу для соединителя не отдельное семейство, а что-то, что уже есть как вложенное, просто скрывать его видимость в проекте.
Вторая проблема — это изменения диаметров арматуры на подключениях коллекторов. Тут пришлось попотеть, я не мог просто сделать стык двух элементов разного диаметра. Ну вот просто не мог, это фу. Поэтому пришлось добавлять резьбовые муфты, делать изделие, похожее на то, что будет в реальности. Красота получилась, конечно, но сил и времени ушло немало. Боюсь, тут вообще нет какого-то промежуточного решения: либо отмоделивать фитинги дополнительные, либо забивать и делать тупо встык.
Но основная проблема — это бешеное количество марок и артикулов, которые порождали все комбинации диаметров арматуры, типов балансировочной арматуры. Из-за этого пришлось делить семейства на отдельные: по видам дренажа и по видам запорно-регулирующей арматуры. Три вида дренажа и три вида арматуры дали 9 вариантов. Семейство многовато, но в итоге получаются таблицы выбора на 30к+ строк, с чем ещё худо-бедно можно работать.
Засунуть прям все варианты было бы неразумно: семейство стало бы очень сильно тормозить. Поскольку вряд ли в одном проекте будет много разных видов коллекторов, то загрузить нужный не проблема.
Вот такие решения использовал при разработке этих коллекторов. Семейства хорошо детализованы, заказчик в курсе и сам был инициатором узнаваемости модели, хотя и хотел, чтобы модели работали побыстрее. Мне и самому делать в упрощённой детализации неудобно, так как пришлось бы дополнительно создавать кучу упрощённой арматуры. Можете посмотреть на одном из моих эфиров, как я уменьшал детализацию шарового крана. Эффект был, конечно, но не прям феерический.
При этом я «крутил» модель отопления на 5 или 6 этажей с разводкой, радиаторами и этими коллекторами в Ревите 2024 — всё работало на удивление шустро. Конечно, изменение параметров семейства занимает какое-то время, тут виновата не детализация геометрия, а количество формул для управления и количество строк в таблице выбора. Так что в целом работать с этим можно.
Если от пользователей будет много заявок, то производитель может рассмотреть вариант с уменьшением детализации. Но вы сначала попробуйте, поработайте, сравните этот коллектор со своим низкодетализированным, будет ли прям ощутимо снижение скорости или нет. Мне кажется, что особенно в последних Ревитах просадка в скорости работы будет незаметная.
Скачать библиотеку на сайте производителя
Выделенные красным прямоугольником коллекторы моей разработки, все остальные семейства на странице не моей работы, про них ничего не знаю.