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

Краткая инструкция

Шаг 1: Создаём проект в Visual Studio

1)     Необходимо запустить Visual Studio и создать новый проект

2)     Создать проект на основе шаблона консольного приложения под .Net Framework

3)     Задать имя проекту и указать необходимую версию .Net Framework

Шаг 2: Подключаем Revit API

1)     Через контекстное меню у проекта перейти в менеджер пакетов Nuget

2)     После в поиске необходимо найти Nuget пакет Revit_All_Main_Versions выбрать и установить необходимую версию под вашу версию Revit

Шаг 3: Настраиваем отладку в Visual Studio

1)     Теперь необходимо создать класс приложения, для этого необходимо реализовать интерфейс IExternalApplication.

2)     К проекту необходимо добавить два файла, которые можно найти в github репозитории “Runner.txt” и “BimExamples.addin”

3)     “BimExamples.addin” данный файл необходим Revit для того, чтобы узнать путь до вашей сборки, а также полный путь в пространстве имен до вашего класса, реализующего интерфейс IExternalApplication. В этом файле необходимо задать имя плагина, путь до dll, можно как абсолютный, так и относительный путь указать, id плагина, после идет полный путь сквозь пространство имен до класса.

4)     Оба этих файла (“Runner.txt” и “BimExamples.addin”) можно исключить из проекта, чтобы они в диспетчере не отображались, и не мешали взгляду

5)     На текущий момент можно перейти к свойствам проекта и настроить их

6)     В событиях перед сборкой необходимо указать эти строки для того, чтобы файлы “Runner.txt” и “BimExamples.addin” копировались выходной каталог, где будет лежать dll после сборки проекта

copy "$(ProjectDir)BimExamples.addin" "$(TargetDir)"

copy "$(ProjectDir)Runner.txt" "$(TargetDir)"

7)     В событиях после сборки необходимо указать эту строку, чтобы мусор создаваемый Revit удалялся

for %%f in ("$(TargetDir)*journal*.*") do del "%%f"

8)     В итоге мы должны увидеть следующий результат

9)     На панели отладки мы должны указать путь до Revit.exe, а в аргумент командной строки передать Revit журнал (в контексте статьи это файл “Runner.txt”)

Шаг 4: Запуск Revit в режиме отладки

1)      В результате проведенной работы на текущий момент можно нажимать на кнопку play и Revit запустится с нашим плагином в режиме отладки.

Для теста рекомендую поставить точку остановы в данном месте и нажать кнопку “Start”

2)       Далее с помощью данных клавишь мы можем перезапускать Revit и пошагово проходить по строкам кода. А если в режиме отладки есть необходимость внести изменения, то необходимо использовать горячую перезагрузку (иконка огонька)

3)      В результате проходясь по строкам кода мы видим значения переменных

 

Еще одним вариантом запуска плагинов может послужить готовый шаблон проекта.

Теперь ваш Revit-плагин можно запускать в режиме отладки прямо из Visual Studio. Это ускоряет разработку, помогает анализировать переменные и делает разработку комфортнее. Если у вас есть вопросы или вы знаете иные варианты запуска — оставляйте комментарии!

Комментарии (4)


  1. BoxaShu
    03.02.2025 08:52

    Это самый медленный способ отладки в Ревит, который только можно придумать. Ждать пока загрузится Ревит, потом ждать когда загрузится тестовый проект... Более быстрый способ - использовать "Add-in Manager" и при отладке присоединяться или отсоединяться к/от процессу "Revit" по необходимости.


    1. erikgett Автор
      03.02.2025 08:52

      Большое спасибо за комментарий!
      Add-in Manager про него не стал рассказывать тк это многими описано уже было. У представленного варианта все-равно для себя плюсы вижу - можно запушить проект сразу настроенный на гит и потом любой может просто запустить особо ни о чем не беспокоясь. так же если работаешь над ui или с событиями, то так немного проще следить за всем этим. А если сравнивать с запуском вообще без журнала, то инициализация Revit будет еще дольше, при данном варианте остальные плагины не инициализируются. Горячую перезагрузку при таком способе работы тоже никто не отменял ну и аддин менеджер тоже имеет место быть:)


  1. ZFi
    03.02.2025 08:52

    Обратите внимание на RxBim - https://github.com/ReactiveBIM/RxBim, там все что нужно есть.


    1. erikgett Автор
      03.02.2025 08:52

      Спасибо большое за обратную связь!)
      Да знаком немного, как раз для примера другой шаблон прикрепил где тоже реализованы эти возможности https://github.com/Nice3point/RevitTemplates. Тут больше хотел показать как можно и что происходит, думаю будет полезно если например проект уже создан в работе и хотелось бы например запускать Revit в отладке без лишних плагинов (или с нужными подсунув в выходной каталог по аналогии другие addin файлы)