Найти в Дзене

Создание шаблона Revit API 2025(.Net 8.0)

Добрый день. Сегодня мы научимся создавать простенький шаблон для плагинов на С# под Revit 2025 и версий выше. Главное изменение с версии 2025, то что плагины создаются не на .Net Framework, а на .Net 8.0. Создавать шаблон будем в среде разработке(IDE) Visual Studio 2022. Первым делом создадим проект на шаблоне Библиотека классов (Майкрософт) Даем название проекта, указываем расположение и жмем далее. Далее выбираем .Net 8.0. Проект создан. Теперь необходимо добавить ссылки на dll. которые лежат в корне папки Autodesk. Для этого нажимаем второй кнопкой мыши на "Зависимости" и "Добавляем ссылки на проект". Далее через обзор находим по пути "C:\Program Files\Autodesk\Revit 2025" файлы RevitAPI.dll и RevitAPIUI.dll. Ставим галки и "Ок" Затем необходимо в свойстве "Копировать локально" выставить значение "Нет" для данных ссылок. Переименуем для удобства Class1 на MyCommand с переименовании всех ссылок. Заменим код в данном классе на следующий: Создадим еще один класс App. В котором создади

Добрый день. Сегодня мы научимся создавать простенький шаблон для плагинов на С# под Revit 2025 и версий выше.

Главное изменение с версии 2025, то что плагины создаются не на .Net Framework, а на .Net 8.0.

Создавать шаблон будем в среде разработке(IDE) Visual Studio 2022.

Первым делом создадим проект на шаблоне Библиотека классов (Майкрософт)

Даем название проекта, указываем расположение и жмем далее.

-2

Далее выбираем .Net 8.0.

-3

Проект создан. Теперь необходимо добавить ссылки на dll. которые лежат в корне папки Autodesk. Для этого нажимаем второй кнопкой мыши на "Зависимости" и "Добавляем ссылки на проект".

-4
-5

Далее через обзор находим по пути "C:\Program Files\Autodesk\Revit 2025" файлы RevitAPI.dll и RevitAPIUI.dll.

-6

Ставим галки и "Ок"

-7

Затем необходимо в свойстве "Копировать локально" выставить значение "Нет" для данных ссылок.

-8

Переименуем для удобства Class1 на MyCommand с переименовании всех ссылок. Заменим код в данном классе на следующий:

MyCommand.cs

Создадим еще один класс App. В котором создадим код необходимый для добавления кнопки на панель.

Для начала добавим класс. Повторяем действия показанные на скринах.

-9
-10

Заменяем код в класс App на следующий:

App.cs

Сейчас необходимо добавить необходимую библиотеку. Нажимаем второй кнопкой мыши на зависимости и выбираем "Управление пакетами NuGet"

-11

Пишем в поиске System.Drawing.Common и устанавливаем версию 7.0.0. Это важно!!

-12

Затем зайдем в свойства - "Проект" - "Свойства проекта"

-13

Во вкладке "Приложение " выставим следующие значение как на скрине ниже.

-14

Пока будут устанавливаться библиотеки и классы WPF(необходимы для создания интерфейсов), мы добавим картинку в ресурсы, которые будут использовать в качестве иконки для кнопки.

Тут уточню что картинка должна быть 32x32 c 96 DPI (DPI можно изменить с онлайн конвекторами)

Чтобы добавить картинку в ресурсы необходимо перейти во вкладку "Ресурсы" и выбрать "Создать или открыть ресурсы сборки"

-15

Далее делаем как на картинке ниже. Имя заполняется автоматически по имени выбранного файла.

-16

После успешного добавления картинки возвращаемся во вкладку "Приложение" и меняем "Тип вывода" на "Библиотеку классов"

-17

Сейчас необходимо будет добавить addin-файл который будет указывать Revit где расположен .dll c запускаемыv классом App.

Для начала на рабочем столе создаем txt-файл с наименованием TemplateRevit2025.

Открываем этот файл с помощью блокнота и записываем следующий текст.

<RevitAddIns>
<AddIn Type="Application">
<Name>TemplateRevit2025</Name>
<Assembly>TemplateRevit2025\TemplateRevit2025.dll</Assembly>
<AddInId>3D0A27AF-F28C-4955-B861-0D84F2570133</AddInId>
<FullClassName>TemplateRevit2025.App</FullClassName>
<Text>TemplateRevit2025</Text>
<VendorId>RevitPlugins</VendorId>
<VendorDescription>RevitPlugins</VendorDescription>
</AddIn>
</RevitAddIns>

-18

GUID необходимо указывать уникальный для каждого плагина.

Создается он следующим образом. "Средства" - "Создать GUID", затем в новом окне "Создать GUID" -"Копировать". Сгенерированный GUID вставляем в наш txt-файл

-19
-20

После данный файл нужно "Сохранить как" указав в конце имени файла расширение .addin .

-21

Теперь добавим этот файл в наш проект, как показана на скрине ниже.

-22
-23

Все проект шаблона готов. Теперь его протестируем.

Для этого соберем решение.

-24

Затем в папке проекта bin/ Debug/ "Платформа которую указывали в свойствах" найдем .dll с одноименным названием.

-25

В папку закидываем наш addin-файл C:\Users\%USERNAME%\AppData\Roaming\Autodesk\Revit\Addins\2025

Также в ней создаем папку "TemplateRevit2025" в него закидываем TemplateRevit2025.dll.

Тут можно проанализировать то что написано в addin-файле и все станет понятно.

-26
-27

Запускаем Revit 2025 и проверяем работоспособность плагина.

-28

После успешной проверки плагина можно удалить его папки.

C:\Users\%USERNAME%\AppData\Roaming\Autodesk\Revit\Addins\2025

Теперь можно создать шаблон. Для этого выберем вкладку "Проект" - "Экспорт шаблона"

-29

Далее выбираем как на картинке ниже

-30

Тут заполняем имя шаблона, описание шаблона , ставим галки.

-31

Шаблон готов. Он будет теперь в списке шаблонов.

-32

Ссылка на GitHub - https://github.com/BelikAE/TemplateRevit2025

Данный шаблон подойдет для простеньких задач без интерфейса. Я в своей практике пришел к тому, что лучше сразу закладывать масштабирование проекта с созданием интерфейса. Поэтому использую шаблон с паттерном архитектуры MVVM. Если будет интересно как это сделать и как с ним работать, тогда пишите об этом в комментарии.