Найти в Дзене
Цифровое бюро

Архитектура маркетплейса. Part 2

В прошлой части мы рассматривали создание Команды с нуля. В этой части мы рассмотрим адаптацию уже готового плагина для размещения и использования в Маркетплейсе. Для полноценной адаптации плагина необходимо обладать его полными исходными кодами. Мы будем рассматривать действия на примере плагина разработанного нами для Revit 2024. Адаптация плагина не требует внесения большого кол-ва изменений в код. Для адаптации потребуется зарегистрированный ЛК разработчика, уникальный код разработчика (доступен в профиле), уникальный зарезервированный код для будущей Команды. Ключевыми моментами адаптации являются: 
 — Добавление корректного описания разработчика в виде отдельного класса, как это описано тут.
 — Добавление корректного описания Команды в виде отдельного класса. Для Revit об этом можно почитать тут.
 — Перемещение/перенос кода из точки входа плагина в точку входа Команды
 — Возможна, но не обязательна, адаптация начального кода в точке входа Команды Весь код плагина состоит из четыр

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

Адаптация плагина не требует внесения большого кол-ва изменений в код. Для адаптации потребуется зарегистрированный ЛК разработчика, уникальный код разработчика (доступен в профиле), уникальный зарезервированный код для будущей Команды.

Ключевыми моментами адаптации являются: 
 — Добавление корректного описания разработчика в виде отдельного класса, как это описано
тут.
 — Добавление корректного описания Команды в виде отдельного класса. Для Revit об этом можно почитать
тут.
 — Перемещение/перенос кода из точки входа плагина в точку входа Команды
 — Возможна, но не обязательна, адаптация начального кода в точке входа Команды

Весь код плагина состоит из четырех файлов

-2

Не будем акцентировать внимание на самом коде плагина. Отметим, что внутри кода происходит работа с транзакцией Revit, т.е. внесение изменений в документ.

-3

Рассмотрим точку входа плагина Revit:

-4

Мы видим проверку на наличие активного документа, создание и вызов основного окна плагина с передачей ссылки на активный документ Revit.

Теперь создадим проект для .NET Framework 4.8, как делали это в первой части.
Добавим в новый проект необходимые зависимости Revit API (с соблюдением правил копирования) и ARO API, а также другие зависимости используемые в плагине.
Скопируем все файлы исходного кода плагина в новый проект, за исключением класса описания плагина Revit - он нам не понадобиться.
Добавим класс описания разработчика. Как добавить класс разработчика можно посмотреть в первой части статьи.
Выберем (или возьмем уже существующую) иконку (логотип) и добавим в проект Команды. Пример добавления иконки (логотипа) для Команды можно посмотреть в первой части статьи.

-5

Финальным шагом будет создание класса описания Команды. Пример создания (описание шагов) можно посмотреть в первой части статьи.
Перемещаем начальный код плагина Revit в точку входа Команды и немного меняем его, не изменяя логики работы. Рассмотрим получившуюся точку входа Команды:

-6

Как видно из текста точки входа, изменения кода минимальны и не затрагивают логику работы основного кода. Изменения внесли в условие проверки наличия активного документа и возврат кодов статуса работы Команды.

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

-7

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

Теперь можно собрать Команду и выполнить ее при помочь пакета SDK, как мы уже делали в первой части статьи.

Если все было сделано правильно и не было ошибок во время сборки, то в Revit отобразиться наша адаптированная Команда.

-8

Как видим, адаптация плагина к использованию и распространению через Маркетплейс не сложна и занимает небольшое кол-во времени.

Ссылка на полные исходные коды из статьи

Ссылка на полный исходный код плагина для Revit 2024

Ссылка на полный исходный код Команды для Revit 2024

Если присутствуют подписки на события Revit, их необходимо заменить на подписку аналогичных (созвучных) событий платформы. Код подписки на события можно переместить в точку входа Команды или любое другое удобное место. Главное выполнить подписку на события ДО их фактического наступления. Таблицу соответствия событий и пример можно посмотреть
тут.