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

Можно даже найти в свойствах семейства опцию «Всегда вертикально», но сообщение всё равно будет вылезать.

Когда первый раз столкнулся с проблемой много лет назад — тоже подумал: «Что за глупое ограничение!».
Но сейчас (и уже не первый раз) понимаю, что ограничения появились неспроста, и они отражают саму суть логики программы. Итак, в чем же особенность?Дело в том, что Ревит — параметрическая САПР, основанная на рабочих плоскостях.
«Параметрический» — значит, что в элементы могут передаваться какие-то значения (параметры) и эти элементы автоматически изменяются (удлиняются, поворачиваются, изменяют конфигурацию) в зависимости от этих параметров, по определенным зависимостям.
«Основанный на рабочих плоскостях» — означает, что геометрические параметры в основном работают с плоскостями, а не с точками или прямыми, и параметризация осуществляется за счет перемещения плоскостей.
Например, в Ревите вообще нет 3D-элементов, которые бы «висели в воздухе»: у элемента всегда есть «Основа» или «Рабочая плоскость».

Фактически, единственные элементы, которые действительно «висят в воздухе» — это оси, уровни и опорные плоскости.
Благодаря этому можно, например, изменить высоту первого этажа (переместить выше уровень второго этажа) и быть уверенным, что все элементы на этих этажах также передвинутся на нужную высоту.
Проблема параметризации рабочими плоскостями — в том, она имеет однозначное решение только в случае ортогональных плоскостей. Простой пример — вертикальные и наклонные колонны. Колонна — объект «На базе двух уровней» — для неё указывается нижний и верхний уровень. Что будет происходить, если изменится высота уровня? Для вертикальной колонны — всё просто: увеличится высота колонны.
Но для наклонной колонны всё сложнее. В этом случае есть выбор:
— сохранить угол, под которым расположена колонна;
— сохранить положение точек начала и конца колонны в плане.
Статья в справке:




Вариант 1: установить на наклонную опорную плоскость





Вариант 2: создать поворот внутри семейства болта:

Привяжем начальную точку вспомогательной линии к пересечению опорных плоскостей:

Нажимайте Tab, чтобы выбрать не всю линию, а её конечную точку.
Создадим параметр угла поворота:

«Вспомогательная линия» — интересный объект. Она имеет 4 плоскости, которые можно использовать в качестве рабочих плоскостей для размещения элементов.
Укажу нижнюю плоскость вспомогательной линии в качестве рабочей плоскости:

Создаю элемент выдавливания:

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

Вариант 3: установка на вертикальную плоскость
Идея простая. Если мы можем вращать элементы только в плоскости, на которую установили элемент, а повернуть нам надо в вертикальной плоскости — установим болт на вертикальную плоскость.
Для этого семейство болта сделаем «Лежащим на боку» :)

Включим «На основе рабочей плоскости» и отключим «Всегда вертикально».
В проекте нам понадобится вертикальная рабочая плоскость. Можно использовать вертикальную боковую грань фундамента, создать в плане именованную опорную плоскость, или использовать в качестве рабочей плоскости одну из осей.
Я установлю на грань фундамента:

Теперь этот болт можно вращать инструментом «Повернуть» так, как нам нужно:

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