Существует несколько способов поворачивать вложенные семейства в родительских. Расскажу о тех, что применяю сам и поделюсь маленькими хитростями, которые помогут семействам не ломаться.
1. Управление угловым размером
Мой любимый способ. Суть проста: привязываем геометрию семейства к угловому размеру, вешаем параметр на угловой размер и меняем его — семейство вращается.
Однако тут есть пара нюансов.
- Вложенное семейство нужно подготовить — создать точку привязки, вокруг которой оно будет вращаться.
- Привязывать угловой размер к главным плоскостям нельзя: Ревит иногда путается и теряет правильную привязку, в итоге не может повернуть семейство или ломает геометрию.
Всё это решается с помощью вспомогательных линий. Чтобы создать точку привязки — нарисуйте две перпендикулярные коротенькие вспомогательные линии так, чтобы они пересекались в той точке, вокруг которой должна вращаться геометрия. Не забудьте привязать их к опорным плоскостям.
![Вот они, две вспомогательные линии Вот они, две вспомогательные линии](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f60e3d45622142b93670b25.png)
После загрузки вложенного в родительское семейство, нужно привязать вложенное к пересечению опорных плоскостей. Вокруг этой точки будет вращаться семейство. Для этого используем обычную команду выравнивания и последующее закрывание замочков.
Собрал все шаги на отдельных картинках:
![](https://muratovbim.pro/wp-content/uploads/2024/08/image-23.png)
![](https://muratovbim.pro/wp-content/uploads/2024/08/image-24.png)
![](https://muratovbim.pro/wp-content/uploads/2024/08/image-25.png)
![](https://muratovbim.pro/wp-content/uploads/2024/08/image-26.png)
![](https://muratovbim.pro/wp-content/uploads/2024/08/image-27.png)
![](https://muratovbim.pro/wp-content/uploads/2024/08/image-28.png)
По идее, уже сейчас можно привязать угловой размер к семейству и вращать его, но рано или поздно угол сломается. Поэтому делаю небольшую хитрость: угол отсчитывается от вспомогательной линии, а не от центральных опорных плоскостей (так я называю закреплённые опорные плоскости, которые всегда есть в редакторе).
Для этого рисую вспомогательную линию, привязываю её начало к пересечению центральных опорных плоскостей. Ставлю угловой размер к линии и закрепляю угол замком — он будет неизменным. И уже от этой линии ставлю угловой размер до вложенного семейства. В итоге отсчёт угла идёт не от центральных плоскостей, и ошибка с углами не возникает, всё крутится идеально.
Далее формулами параметризую угловой размер, а для пользователя вывожу отдельный параметр для управления углом, в визуально более понятных значениях. Ревит ещё любит развернуть семейство и поворачивать его с левой половины, поэтому делаю так, чтобы было понятно, что и куда крутится.
![Угол_Сифон привязан к вспомогательной линии и осевой линии в семействе Угол_Сифон привязан к вспомогательной линии и осевой линии в семействе](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f60e9225622142b936ee565.png)
![Управляющие параметры Управляющие параметры](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f60e9cd5622142b936ff133.png)
И помните: Ревит вращает тела против часовой стрелки.
Вот несколько примеров из 3Д, как вращается тело (жаль, тут гифку не приложить):
![Угол 90 Угол 90](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f60eae85622142b9371a0dc.png)
![Угол 0 Угол 0](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f60eb148b0f2342e50e6ae2.png)
![Угол 135 Угол 135](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f60eb6f8169a878169511c3.png)
По-моему, удобно.
2. Размещение на грани тела вращения
Кажется, любимый способ Алексея Борисова, именно его он рекомендует на форуме Автодеска. Этот способ будет хорош и для вложенных семейств и для отдельных тел внутри семейства. Метод основан на возможности привязать тело к грани другого тела, в данном случае — тела вращения. У тела вращения можно управлять углом, соответственно, будет перемещаться и другое тело, привязанное к грани тела вращения. Сейчас по картинкам будет понятнее.
Вот тело вращения. Если его выделить в редакторе семейств, то в свойствах есть два угла. Поменяю их значения, тело станет «недовращённым». Соответственно, появится пара граней, чьим положением можно управлять с помощью углов.
![Тело вращение сразу после создание замкнутое Тело вращение сразу после создание замкнутое](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f699fc194e9b0682fa9c140.png)
![Поменял углы, привет, объёмный Пакман Поменял углы, привет, объёмный Пакман](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f69a0b03557c51afd07a2f9.png)
![После введения углов получили две управляемые грани После введения углов получили две управляемые грани](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f69a0f93557c51afd081d2d.png)
Есть грань, на грани можно размещать другие тела. Для примера создам «бумеранг» — вложенное семейство, которое размещается даже не на грани, а просто на рабочей плоскости. Вот бумеранг:
![В свойствах ставим галочку «На основе рабочей плоскости», а галочку «Всегда вертикально» снимаем В свойствах ставим галочку «На основе рабочей плоскости», а галочку «Всегда вертикально» снимаем](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f69a42a94e9b0682fb0c819.png)
Теперь загружу бумеранг в семейство Пакмана. По умолчанию бумеранг сразу будет размещаться на грани. Остаётся просто навести бумеранг на нужную грань Пакмана и кликнуть мышкой. Семейство бумеранга разместится на грани и теперь будет вращаться вместе с ней.
![Вот вращение с углами 180° и 0°, бумеранг лежит себе спокойно Вот вращение с углами 180° и 0°, бумеранг лежит себе спокойно](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f69a862f52b7a1881870c8a.png)
![А вот уже углы 240° и 0°, бумеранг спокойно повернулся вместе с гранью на 60° (180 + 60) А вот уже углы 240° и 0°, бумеранг спокойно повернулся вместе с гранью на 60° (180 + 60)](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f69a88394e9b0682fb84b17.png)
Вот такой метод. По идее, можно и внутри семейства элементы геометрии привязывать не к опорным плоскостям, а к граням, и добиться такого эффекта. Но я так никогда не делал, задачи не было.
Зато, совместив первый и второй вариант, вы можете создать семейство, в котором можно вращать элемент сразу в двух плоскостях. Однажды я создавал такое семейство профильного листа для перекрытия, которое должно было вращаться и в продольном сечении и в поперечном. Получилось, вот так оно выглядит на 3Д-виде при угле просмотра сбоку под 45°. Обратите внимание на углы в свойствах.
![Профиль меняет положение в двух плоскостях Профиль меняет положение в двух плоскостях](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f69ab5ff52b7a18818c7391.png)
3. Скрытие видимости
Метод может показаться колхозным после двух перечисленных выше, однако это тоже рабочий метод. Например, у вас есть ручка задвижки, которая находится либо в положении открыто, либо закрыто. В этом случае можно взять два экземпляра одной и то же ручки и просто разместить их в одном месте под углом 90° друг к другу. А после каждому экземпляру назначить свою галочку видимости «Открыто» и «Закрыто».
Так как возможен только один вариант, то ещё и формулу добавить, которая будет автоматически включать второй вариант при отключении первого. Если хотим по умолчанию оставить положение «Открыто», то в параметр видимости для закрытой ручки пишем формулу «not(Ручка открыта)» и всё.
Это проще, чем городить углы поворота, привязывать их к геометрии. Вот пример из моего семейства Текофи, через видимость и реализовал эти положения ручки.
![Ручка в положении «открыто», галочка на параметр «Ручка_Открыто» Ручка в положении «открыто», галочка на параметр «Ручка_Открыто»](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f686d614c07ce06042899b4.png)
![Ручка в положении закрыто, галочка автоматически переходит на «Ручка_Закрыто» при снятии галочки с «Ручка_Открыто» Ручка в положении закрыто, галочка автоматически переходит на «Ручка_Закрыто» при снятии галочки с «Ручка_Открыто»](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f686dc4725dfb452420f06d.png)
![Формула в семействах на параметрах видимости Формула в семействах на параметрах видимости](https://muratovbim.pro/wp-content/uploads/2022/12/pub_5e78e06a2cb8ec6132618839_5f686e1cb142594c53817a17.png)
Конечно, можно потестировать, что лучше скажется на весе файла — дополнительный экземпляр геометрии или дополнительные параметры углов. Думаю, разница несущественна, а галочки сделать проще и быстрее, чем параметризировать углы.
Как вариант, два положения можно реализовать в самом вложенном семействе вот такой ручки, и тогда вы по сути будете переключать видимость одного семейства через параметры родительского.
Этих трёх способов мне вполне хватает. Есть другие? Делитесь ими в комментариями или в телеграм-группе блога.