Сегодня расскажу, как решить одну интересную задачу — написать плагин для Revit, который будет работать как веб-страница. Я расскажу про базовый обмен данными между Revit и веб-приложением, в моём случае оно будет статичным, но в целом, никто не мешает вам сделать его динамическим или задеплоить на удалённым сервере...
Revit API и автоматизация Revit с нуля
Работа с Excel-настройками для плагина. Библиотека ClosedXML
Всем привет! Сегодня я решу небольшую прикладную задачу — создам Excel-файл с правилами заполнения параметров, а потом заполню параметры в элементах Revit по этим правилам. Создадим Excel-файл из 2 столбцов: в первом столбце напишем категорию элемента, а во втором — значение параметра Комментарии для этой категории. Добавим этот файл в ресурсы приложения, чтобы он скомпилировался в итоговый dll. (Тут вопрос спорный, в реальном приложении вы сможете указать путь к файлу, а потом менять этот файл для всех пользователей, не обновляя плагин...
Единицы измерения в Revit и ForgeTypeId
Если вы начинали свой путь в программировании под Ревит с Dynamo, то, наверное, помните магическое число 304,8 (или 0,3048). Это коэффициент, который используется для перевода из внутренних единиц Ревита (футов) в миллиметры. Но вообще, внутренние единицы Ревита это не только футы. Площади, объёмы, массовые расходы, сила тока, напряжение, может измеряться под капотом в чём угодно. Давайте попробуем разобраться, как с максимальной точностью переходить от внутренних единиц к понятным нам единицам, и что такое ForgeTypeId...
Паттерн Result и управление потоком выполнения программы
В этой статье я не буду открывать Америку — материалов про паттерн Result на любом языке очень много. Но он мне очень понравился, так что я решил поделиться им и с вами, уважаемые подписчики, и конечно же, как и всегда, в контексте Revit API. Это классический вариант управления потоком в C# и в Revit API тоже. Давайте рассмотрим его на примерах: Пример 1. У нас есть 2 линии, нам надо найти точку их пересечения. Написать метод, который принимает на вход 2 Line, возвращает XYZ. Метод будет выглядеть, допустим, так: Давайте посмотрим на поток выполнения: 1...
