Я написал уже довольно много статей про написание плагинов и приложений для Revit. Во всей этой деятельности есть интересная особенность — сам код, исполняемый внутри Ревита, писать несложно. Набиваешь руку, набираешь опыт — и вот уже небольшие плагины вылетают из-под вашего пера один за другим.
Но проблемой является создание плагина прямо с нуля. Есть очень много нюансов, которые нужно держать в голове при создании нового проекта, и которые легко забыть: код мы пишем часто, а новые проекты создаём редко. Банальное подключение плагина для Revit может стать проблемой для неопытного и даже опытного программиста (я совсем не удивлён, что самая популярная и читаемая статья в блоге — как раз про это).
Недавно я начал писать про плагины с окнами и технологию WPF, и там этих нюансов стало ещё больше. Поэтому я решил сделать шаблон проекта и поделиться им на GitHub, а заодно поделиться с вами технологией выполнения шаблона (может быть, вам нужно будет не всё, а только часть, или что-то добавить — тогда вы сделаете его сами по себя).
Создание шаблона — подготовка
1. Создаём новый проект, добавляем ссылки на RevitAPI, реализуем класс Command. Добавляем addin-файл.
2. Создаём класс Application. Добавляем изображения, добавляем панель и кнопку.
3. Продумываем файловую структуру. Я решил так: в корне будет файл Application.cs, папка Core с классом RevitApi — общее для всех плагинов. И отдельные папки для всех плагинов, внутри которых отдельные папки для ViewModel и View (но папки под них можно и не создавать, если плагин простой).
4. Добавляем WPF к проекту. Создаём View и ViewModel. Модифицируем Command, чтобы по команде открывалось окно.
5. Добавляем библиотеку Community.Toolkit.Mvvm к проекту. Это самое сложное действие, после этой статьи я и решил наконец написать про шаблоны проектов.
Я решил ещё добавить тестовую кнопку и тестовую команду, чтобы можно было проверить, что всё работает, но это необязательно.
Концепция шаблона
Я создал репозиторий на гитхабе. Вам нужно превратить его в шаблон:
1. Установить .NET SDK, если он ещё не установлен.
2. Клонировать мой репозиторий.
3. Открыть его и превратить в шаблон.
4. Создать проект на его основе.
Превращение проекта в шаблон
Идём по пути Проект — Экспорт шаблона:
Выбираем "Шаблон проекта".
Затем ничего не меняя, следим, чтобы была галочка "Автоматически импортировать шаблон в Visual Studio" и жмём "Готово":
Создаём новый проект:
После создания проекта
Необходимо сделать следующее:
1. Вручную изменить Guid в Command.cs и Application.cs.
2. В addin-файл вписать Guid из Application.cs.
3. После сборки перенести addin в папку C:\ProgramData\Autodesk\Revit\Addins\2023.
4. В этой папке создать подпапку своего плагина, и перенести в неё все файлы из bin\Debug.
5. Поменять ссылку на dll в addin-файле.
Отладку в моём шаблоне следует проводить через Addin-менеджер.
Заключение
Итак, сегодня мы подвели итог большой части подготовительной работы для Revit-приложений. Теперь вы можете воспользоваться моим шаблоном, или создать свой.
Также я весьма рекомендую шаблоны от Романа Nice3Point. В них, помимо всё выше перечисленного, реализована удобная поддержка нескольких версий Revit в одной сборке, автоматическая сборка установочного msi-файла на GitHub или локально, и события сборки (запуск Ревита и перенос в нужную папку). Кроме того, его можно установить как пакет nuget. Перед работой с ним внимательно прочитайте гайд (он есть в репозитории) — это очень крутая и полезная вещь для разработки плагинов.
А на этом всё: не забывайте подписаться на мой телеграм-канал. Пишите ваши мысли в комментарии. До новых встреч