«Автоматизация Revit на языке C#: базовый уровень»Начальный

Базовый курс по автоматизации проектирования при помощи языка программирования C# рассчитан на уверенного пользователя Revit и будет полезен тем, кому не хватает стандартного функционала программы и кто хочет вывести свои профессиональные компетенции на новый уровень. Благодаря данному курсу вы познакомитесь с азами объектно-ориентированного программирования (ООП), научитесь работать со вспомогательными материалами и документацией по Revit API, а также приобретете уникальные навыки по созданию собственного плагина для Revit.

В данном курсе освещаются самые базовые аспекты, поэтому он будет одинаково полезен и инженеру, и архитектору, и конструктору. Курс преследует несколько основных целей. Во-первых, заинтересовать слушателя, показав, на что способен Revit API. А, во-вторых, помочь сделать первые шаги на пути к написанию собственной надстройки для Revit.

Автор: Иван Фокин
Макс. длительность: 4 часа 39 минут

Внесение изменений в модель

Урок
Блоки можно проходить в любом порядке
Длительность
Минут
Исходные данные
Длительность: 4 мин.
Описывается рекомендуемый способ работы с исходными данными при прохождении курса.
Изменение модели. Класс Transaction
Длительность: 12 мин.
Дается обзорное описание классов Document, UIDocument, а также класса Transaction. Помимо всего прочего описываются класса геометрических примитивов такие, как кривая Curve, дуга Arc, точка XYZ. Демонстрируется корректная работа с классом Transaction на примере создания в документе нескольких линий детализации.
Описывается класс FilteredElementCollector, а также способы формирования выборок элементов при помощи разнообразных фильтров. Работа с данным классом демонстрируется на примере поиска различными способами всех линий детализации в проекте с последующим их удалением.
Дается описание перегрузок метода NewFamilyInstance, а также способов добавления в документ новых экземпляров семейств с его помощью. Работа данного метода демонстрируется на примере трех команд, первая из которых выполняет размещение семейства на основе уровня, вторая - семейства на основе стены, а третья - семейства на основе линии. Описываются особенности работы с единицами измерения, а также их конвертация. В одном из примеров описываются способы получения геометрии элементов модели.
Описываются классы Location, LocationPoint, и LocationCurve, а также способы определения и изменения пространственного положения элементов модели с их помощью. Работа с классом LocationCurve демонстрируется на примере смещение протяженного элемента, а именно стены, а работа с классом LocationPoint - на примере вращения экземпляра семейства.
Дается описание способов переноса, копирования, вращения и отражения элементов модели при помощи статического класса ElementTransformUtils. Работа с данным классом демонстрируется на примерах единичного и множественного копирования, отражения, смещения и вращения элементов модели.
Дается описание статического класса AdaptiveComponentInstanceUtils, а также способов взаимодействия с экземплярами адаптивных семейства с его помощью. Работа с данным классом демонстрируется на примере пользовательской команды, предназначенной для построения проводов воздушной линии электропередачи. Описываются способы получения доступа к общим вложенным экземплярам семейств.
Описывается способы определения и изменения пространственного положения геометрических примитивов при помощи класса Transform. Дается описание методов, позволяющих выполнять аффинные преобразования в контексте трехмерного пространства модели. Работа с классом Transform демонстрируется на примере трех команд, выполняющих преобразования смещения, вращения, а также их комбинации.
Работа с параметрами
Длительность: 16 мин.
Дается описание класса Parameter, а также методов позволяющих получать и изменять значения параметров. Описываются способы получения как системных, так и пользовательских параметров элементов модели. Работа с параметрами демонстрируется на примере команды, выполняющей построение крышек и перегородок, подстраивающихся под размеры кабельного лотка.