Расскажу про общие и необщие вложенные семейства, а также связь вложенных семейств с родительскими.
Что такое вложенные семейства
В Ревите мы можем засунуть одно семейство в другое и даже делать матрёшки из нескольких последовательно вложенных друг в друга семейств. То, семейство, в котором сидят все остальные, называют «родительским». Те семейства, которые сидят в родительском, называют «вложенными». Этой терминологией и буду пользоваться далее.
Зачем делать вложенные
Вложенные могут быть полезны по ряду причин.
Сложной геометрией вложенного управлять гораздо проще, чем геометрией, которая моделируется в родительском. Например, у вас есть задвижка с геометрически сложным электроприводом. При этом нужно в зависимости от диаметра подключения менять положение привода.
Гораздо проще сделать семейство привода отдельно и вложить его в семейство задвижки, в этом случае нужно управлять только точкой вставки всего семейства. Если моделировать привод прямо в родительском, то придётся управлять положением каждого геометрического элемента, что довольно трудозатратно, а вероятность ошибки велика.
Кроме того, сложная геометрия, которую нужно вращать, будет чаще ломаться, если делать её примитивами в самом семействе. Проще загрузить вложенное и управлять его углом поворота. Про вращения в семействах есть отдельная статья.
Для массивов так же лучше пользоваться вложенной геометрией. Об этом тоже рассказываю в статье про линейные массивы и отдельно про круговые массивы.
Вложенные семейства можно учитывать в спецификации. Вложенные семейства по учёту в спецификациях можно разделить на два типа: общие и необщие. Общие учитываются отдельными позициями в спецификациях, Ревит их воспринимает как отдельные семейства, в диспетчер проекта они попадают как обычные семейства. Вы даже можете разместить их в модели независимо от родительского. Но в случае с инженеркой это не имеет смысла.
Необщие вообще не учитываются, это просто геометрия внутри другого семейства.
Чтобы сделать семейство общим, нужно в редакторе семейств внутри этого семейства в свойствах поставить галочку «Общий». Не в параметрах типа, не при выделении семейства, просто в редакторе в свойствах, когда ничего не выделено.
Далее рассмотрим, как сделать семейство вложенным, плюсы и минусы общих вложенных и как связывать параметры в родительском и вложенном.
Как вложить одно семейство в другое
В редакторе семейств на вкладке «Вставить» есть кнопка «Загрузить семейство». Нажимаете её, выбираете на диске семейство, которое хотите вложить, и оно появится в диспетчере проекта в разделе «Семейства» с той категорией, в которой вы создавали вложенное.
Далее, как и в проекте, просто вытягиваете нужный типоразмер, размещаете в пространстве родительского семейства и привязываете к опорным плоскостям, если нужно управлять положением.
На ленте рядом с «Загрузить семейство» есть кнопка «Загрузить как группу». Если выбрать её, то также можно загрузить семейство, но при этом вы импортируете его геометрию в виде группы, а не загрузите как отдельное семейство.
Эта функция бывает удобной, если при создании семейства выбрали не тот шаблон. Например, создали семейство на основе грани, а потом поняли, что лучше было делать на уровне. Чтобы не перестраивать всю геометрию заново, её можно импортировать в семейство на правильном шаблоне, а потом перепривязать к опорным плоскостям.
По сути то же самое можно сделать обычным Ctrl+C и Ctrl+V между двумя семействами, но с группами будет аккуратнее.
Что нужно помнить для вложенных
Если работаете с инженерными общими вложенными, то обязательно удаляйте все соединители из такого семейства. Иначе это может привести к росту границ семейства. Об этом есть отдельный материал, ознакомьтесь.
Именно поэтому нет смысла делать семейство общим, чтобы размещать его и с родительским, и отдельно. Без соединителей к системе ничего не подключится. Нужно делать отдельное семейство для независимого размещения и отдельное для вкладывания.
Чем хороши общие семейства
Главная их фишка — учёт в спецификациях. Удобно, если у вас есть какие-то узлы, которые часто и много повторяются, а собирать их руками муторно и при этом нужно учитывать все позиции в спецификации.
Например: радиатор и запорная арматура, мойка с сифоном, фланец и крепления, пожарный шкаф и его начинка.
Всякий раз, как вам нужно учитывать вложенные в спецификациях, нужно делать их общими. Однако у общих семейств есть также и достаточно много минусов, потому что, как мне кажется, их делали в первую очередь под нужды строителей, а не инженеров.
Чем плохи общие вложенные
У вложенных общих семейств есть ряд серьёзных недостатков, которые нужно учитывать при работе. Пройдусь по всем ним с пояснениями.
Не наследуют параметры системы
Общие вложенные не получают из родительского классификацию, тип, сокращение и имя системы. Например, если вы добавили общий вложенные фланец в семейство задвижки, то задвижка получит с трубы имя системы, а фланцы — нет. Кроме того, общие вложенные не перенимают цвет системы.
Из-за этого очень сложно фильтровать сети по имени системы. Так как параметр «Имя системы» у общего вложенного есть, но ничем не заполнен, то такие вложенные просто скрываются на виде, к которому применён фильтр по имени системы.
Что делать. Можно пользоваться решениями из шаблонов АДСК, например макросами, о них есть статья. Можно создавать свои скрипты Динамо, особенно удобно это делать в версиях 2.6 и позднее, так как там есть базовые ноды для получения всех вложенных семейств.
- Element.GetChildElements — этим нодом можно получить вложенные семейства из родительского.
- Element.GetParentElement — этим нодом можно получить родительское из вложенного.
В версиях младше для этой же цели можно использовать сторонние пакеты, например Clockwork. В нём есть нод «FamilyInstance.SubComponents», который выдаст список всех вложенных общих. На английском они называются nested families.
Можно добавлять всем семействам отдельный общий параметр, связывать параметр вложенных с родительским, а далее в проекте выделять Табом всю систему и вписывать имя системы в этот общий параметр. Так как параметр во вложенном связан с родительским, то у них будет одинаковое значение, поэтому фильтр не скроет вложенные.
Как связывать параметры, расскажу ниже.
Затрудняют перемещение элементов размерами
Если поставить размер на семейство, в котором есть общее вложенное, а потом выделить семейство в модели, то размер не преобразуется во временный. Что с этим делать, читайте в отдельной статье.
Растягивают границы семейства
Об этом писал выше под заголовком «Что нужно помнить про общие вложенные».
Не заменяются на необщие
Если сделали вложенное общим, а потом решили поменять его на необщее, то не получится заменить одно на другое без переименовывания. Например, захотели сделать привод общим, зашли во вложенное, поставили галочку «Общий», загрузили в задвижку — всё норм.
Потом передумали, зашли в семейство привода, отжали галочку, загружаете обратно, а Ревит выдаёт ошибку:
Придётся какое-то семейство переименовать или удалить общее вложенное. Думаю, сделано это ради безопасности, чтобы вы случайно не удалили из проекта отдельно размещённые общие семейства.
Подтягивают все семейства из категории в параметр типоразмера семейства
Если делаете параметр типоразмера в семействе, то в выпадающем списке будут все вложенные семейства данной категории. Для примера задвижка с электроприводом в категории «Электрооборудование», добавляю в задвижку ещё одно вложенное в этой же категории, причём даже не общее.
В итоге в выпадающем списке будут все типоразмеры, что не всегда удобно.
Из-за этого выпадающие списки зачастую делаю в разных категориях, чтобы не перемешивать варианты, или иду на уловку с сортировкой:
Макросы и скрипты Динамо решают проблему со вложенными, кроме цвета, так что нет причин избегать этого инструмента. В своей практике делаю так: вложенные с геометрией делаю необщими, а для спецификации загружаю общие вложенные пустышки. В итоге визуально всё красиво и в спецификацию падают позиции. Посмотрите на примере моих пожарных шкафов.
Как связать параметры родительского и вложенного
Давайте запомним простую истину:
Данные передаются только от родительского во вложенное. Обратного потока — нет.
Во вложенных семействах могут быть два вида параметров: по типу и по экземпляру. Чем они отличаются, можете прочитать в отдельном материале. Когда размещаете вложенное в пространстве родительского и выделяете вложенное, то видите его параметры экземпляра и напротив маленькие серые кнопочки для связывания параметров.
Если на кнопке есть знак «=», значит, этот параметр вложенного связан с родительским. Связывать можно только параметры одного типа. Длину с длиной, число с числом, галочку видимости с галочкой видимости.
Чтобы связать, нажмите по серой кнопочке и далее либо выбираете из существующих параметров, либо здесь же можно создать новый параметр семейства или общий параметр. На иллюстрации ниже связываю параметр диаметра фланца с диаметром задвижки. Имена параметров не обязательно должны совпадать.
То же самое можно сделать с параметрами типа у вложенного. Если какой-то параметр во вложенном определяется формулой, то его связать не получится.
Теперь при изменении значения параметра в родительском семействе то же самое значение появится и во вложенном. Обратный поток данных не работает: нельзя поменять что-то во вложенном и чтобы это отразилось на параметрах родительского.
Чтобы реализовать такой сценарий, обычно пользуются таблицами поиска. В них перебирают все возможные варианты и в зависимости от текущих значений параметров генерируются значения для других параметров. Подробнее об этом рассказываю в платном видео.
Иногда пользуются параметрами отчёта: геометрию вложенного можно образмерить, создать параметр отчёта из размера и как-то с ним работать. Такой процесс в своих семействах не использую, потому что нет необходимости, поэтому подробностей не расскажу. Приглашаю комментаторов поделиться опытом, желательно с картинками.
Как управлять видимостью вложенных
Есть два типа управления: по уровню детализации и просто видно/не видно.
Если выделить вложенное семейство, то увидите у него параметры «Переопределение видимости/графики» и «Видимые». Первый — та же самая настройка отображения на разных уровнях детализации. Второй — параметр-галочка, который можно включить или отключить или связать с параметрами родительского.
Команда «Переопределение видимости/графики» также доступна на ленте при выделении вложенного, команда называется «Параметры видимости».
Иногда бывает так, что галочка «Видимые» не скрывает вложенное. Пока не выяснил, почему так, потому что работает как-то через раз. Например, вложенная муфта в семействе отвода скрывается нормально, а в тройнике — уже нет.
Чтобы справиться с этим, добавьте во вложенное отдельный параметр-галочку, на который привяжите видимость всей геометрии. И уже в родительском связывайте и стандартный параметр видимости, и ваш пользовательский.
Если вкладываете общее семейство, то при отключении галочки «Видимые» оно не только исчезнет визуально, но и перестанет учитываться в спецификации. Таким образом можно контролировать учёт вложенных и варьировать его.
Какие сценарии использования
Это будет раздел со своего рода итого. Перечислю варианты, когда могут пригодиться общие и необщие вложенные. Тут не все возможные сценарии, только те, что вспомнил, пока писал статью.
- Управление геометрией: перемещение и вращение сложных элементов. Пример выше — электропривод задвижки.
- Создание массивов. Пример есть в статье про радиаторы.
- Управление типами: изменение элементов из выпадающих списков. Например, так можно менять условные обозначения или создавать выпадающие списки. Про выпадающие списки тоже есть отдельный материал.
- Учёт изменяемых подэлементов в спецификациях. Например, начинка пожарного шкафа или подсчёт всяких ящиков в мебельном гарнитуре.
- Быстрое изменение основы размещения для семейства. Метод тупой, но быстрый: вместо того, чтобы переделывать семейство с нуля, вы просто засовываете его в пустое семейство на нужном шаблоне.
Пример, есть у вас вентилятор на основе крыши, а вам нужно свободное размещение. Засунули вентилятор в пустое семейство без основы, прицепили соединители, добавили параметры для спецификации и готово.
Если статья пригодилась — ставьте лайки, чтобы помочь её распространению, а лучше сами скиньте коллегам.
Обновления статей удобно получать в Телеграм-канале «Блог Муратова про Revit MEP». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.
Отблагодарить автора
Я много времени уделяю блогу и разработке семейств. Если хотите отблагодарить меня, то можете сделать небольшой подарок (именно подарок, такой перевод не облагается налогом).
Читайте методичку для проектировщиков: полезный материал, в котором последовательно рассказываю, как создавать модель.
Мини-курс по моделированию ОВ и ВК
В специальный плейлист на Ютубе выкладываю свои ролики по работе в Ревите. Этот курс записывал для студентов, разбираю базовые моменты по моделированию.