Skip to content

A flexible, customizable space for running commands from other plugins in Revit.

License

Notifications You must be signed in to change notification settings

i-savelev/PluginsManager

Repository files navigation

Plugins Manager

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

PluginsManager - плагин для Revit, который позволяет создавать гибкое настраиваемое пространство для запуска команд из других плагинов. Данный инструмент вдохновлен проектом Revit Add-in Manager.

Плагин подгружает специально настроенные команды из всех dll файлов в выбранной папке и создает структуру из вкладок в отдельном окне. С PluginsManager становится достаточным просто обновить dll файл в папке на общем сервере, а для пользователей обновления становятся полностью бесшовными.

Features

Установка

Плагин устанавливается с помощью Plugins Manager.msi. На данный момент поддерживаются версии Revit21-24

Запуск

Плагин рсполагается на вкладке "Надстройки" и при первом запуске предлагает выбрать папку с dll файлами.

image

После выбора папки и при последующих запусках будет появляться основное окно плагина

image

  1. Кнопка для выбора папки с dll файлами
  2. Кнопка для синхронизации локальных файлов с файлами из выбранной папки (плагин создает локальную копию файлов в папке "%appdata%/PluginsManager/temp"
  3. Вкладки. Гибко и быстро настраиваются (см. п. "Настройка и дополнительные возможности")
  4. Таблица с командами выбранной вкладки
  5. Кнопки для запуска команд
  6. Информация о плагине, которая указана в IS_DESCRIPTION или в <CmdDescription></CmdDescription> (см. п. "Настройка и дополнительные возможности")

Подготовка внешних dll файлов

Одним из вариантов пападания команды в окно плагина является добавление специальных полей прямо в класс с интерфейсом IExternalCommand:

public static string IS_TAB_NAME => "Название вкладки";
public static string IS_NAME => "Название команды";
public static string IS_IMAGE => "Название проекта.Resources.Название изображения.png";
public static string IS_DESCRIPTION => "Описание";

Для того, чтобы изображение считалось плагином, оно должно быть добавлено в ресурсы проекта и иметь свойство "Embedded resource"

Настройка и дополнительные возможности

Настройки папки внешних команд

Плагину доступны все dll файлы внтури указанной папки и все dll файлы в вложенных папках первого уровня.

При первом обращении к указанной папке внтури будет создан файл "commands_config.xml" и папка "img". В файле "config.xml" можно указывать полное имя команды из dll, вкладку, отображаемое имя, описание, название картинки из папки "img".

<Commands>
  <Command>
    <CmdCode>Имя проекта.Имя класса</CmdCode>
    <CmdTab>Название вкладки</CmdTab>
    <CmdName>Имя для отображения</CmdName>
    <CmdDescription>Описание команды</CmdDescription>
    <CmdImage>image.png</CmdImage>
  </Command>
</Commands>

Таким образом можно добавлять команды из любых dll без необходимости вносить изменения в исхоный код.

Настрйоки, указанные в классе команды переопределяются настройкми из файла "config.xml".

В поле IS_TAB_NAME или <CmdTab> можно указать несколько вкладок через знак "|", чтобы каманда попала сразу на несколько вкладок. Например, "АР|КР".

Для получения всех доступных команд из dll файлов в текуще папке можно воспользоваться функцией "Показать все команды в папке" на панели Plugins Manager.

image

При нажатии появится окно с таблицей полных имен всех команд. Эти имена нужно указывать в поле <CmdCode></CmdCode>

image

Настройки пользователя

Плагин создает файл конфигурации в директории %appdata%/PluginsManager при первом запуске.

<Settings>
  <FolderPath>C:\Users\ilyas\Desktop\SVLV\temp\savelev_plugin\savelev_plugin\bin\Debug</FolderPath>
  <ExceptionTabs>Здесь можно указать названия вкладок, которые нужно скрыть</ExceptionTabs>
  <Post>user</Post>
</Settings>

FolderPath - сюда сохраняется путь к папке с dll файлами

ExceptionTabs - тут можно через любой разделитель указать названия вкладок, которые нужно скрыть. Например, таким образом можно для архитекторов скрыть вкладки "КР" и "ИОС". По умолчанию поле пустое.

Post - поле для обозначения роли. По умолчанию "user". Если значение заменить на "manager", то станут доступны вкладки, у которых в названии есть решетка "#". Таким образом можно отделять команды и плагины для тестирвоания или для внутреннего использования.

About

A flexible, customizable space for running commands from other plugins in Revit.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages