Изменение геометрии экземпляра семейства
Вопрос: Мне нужно изменить геометрию конкретного элемента в проекте. Похоже на то, что Revit API просто не позволяет это делать. Я разобрался с тем, как использовать метод Duplicate для создания нового типоразмера в проекте и затем задать новый типоразмер нужному мне экземпляру семейства. Но таким способом я могу лишь менять значение параметров в новом типоразмере. Мне же действительно нужно изменить именно геометрию. Я бы предпочел не использовать редактор семейств, для реализации моей задумки. Все дело в том, что я хочу сделать эти изменения в методе IUpdater.Execute. Есть ли способ сделать то, что мне требуется?
Ответ: Спасибо за интересный вопрос.
Если говорить коротко, то нет. Для пущей убедительности скажу, что это невозможно в принципе.
Вы должны понимать, что все модель Revit основана на параметрах. Параметры «управляют» моделью. Геометрия – это всего лишь результат.
Соответственно, для того, чтобы изменить геометрию, нужно менять параметры. Только после этого будет сформирована новая геометрия.
Это главная особенность, которая отличает Revit от других САПР систем.
Очень важно это понимать.
Также полезно понимать Revit с пользовательской стороны, перед тем как думать о программировании чего-либо.
Кстати, новый объект DirectShape, появившийся в Revit API 2015 фактически дает вам возможность создать геометрический объект прямо в проекте, без создания семейства и последующей вставки его в проект.
Источник: http://thebuildingcoder.typepad.com/blog/2014/09/a-couple-of-recent-issues.html#5
Обсуждение: http://adn-cis.org/forum/index.php?topic=976
Опубликовано 24.09.2014