Все плагины должны придерживаться единой стилистики написания кода.

Для поддержания стилистики используется статический анализатор кода – StyleCop.Analyzer.

Подключите статический анализатор StyleCop.Analyzer ко всем проектам в решении, используя менеджер NuGet-пакетов.

Скачайте файл с правилами для статического анализатора ModPlus.ruleset и разместите его в корне решения.

С помощью текстового редактора (или любого другого редактора) откройте файлы проектов (.csproj) решения и добавьте в них следующее:

<PropertyGroup>
  <CodeAnalysisRuleSet>$(SolutionDir)\ModPlus.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>

Локализация плагинов выполняется с помощью xml-файлов, заполняемых по определенным правилам.

Для выполнения локализации клонируйте репозиторий Core_LanguageFiles и создайте новую ветку. Создание ветки требуется для последующего создания Pull Request.

В проекте LanguageFiles расположены файлы локализации (en-US.xml, ru-RU.xml и т.д.). При локализации плагинов необходимо вносить изменения во все файла локализации.

После внесения изменений в файлы локализации проекта LanguageFiles скопируйте эти файлы в папку /ModPlus/Languages установленной версии ModPlus. После этого вы можете протестировать результат локализации.

Каждый файл содержит корневой элемент ModPlus (его редактировать не надо!) и вложенные элементы. Каждый вложенный элемент относится к отдельному компоненту ModPlus, включая плагины.

 Основные библиотеки, обязательные для создания плагинов в ModPlus, выпущены в виде nuget-пакетов.

  • ModPlusAPI.dll – основная библиотека вспомогательных методов ModPlus. Nuget
  • ModPlusStyle.dll – библиотека оформления. Nuget

Вы также можете подключить эти библиотеки из папки /ModPlus/Extensions.

Библиотеки продуктов Autodesk:

Мы создали nuget-пакеты с минимальным обязательным набором библиотек Autodesk, необходимых для написания плагинов ModPlus:

При установке пакета выбирайте версию, соответствующую версии продукта Autodesk.

Библиотеки сторонних разработчиков:

Перечисленные библиотеки рекомендуется подключать из папки /ModPlus/Extensions.

Библиотека Newtonsoft.Json.Net интегрирована в библиотеку ModPlusAPI.dll.

При необходимости использования библиотек, отсутствующих в списке, следует предварительно сообщить автору ModPlus.

Для всех библиотек, перечисленных в данной статье, обязательно нужно установить свойство Copy Local = false!

Чтобы установить значение Copy Local = false при переводе nuget-пакетов в формат PackageReference нужно открыть файл проект (.csproj) в текстовом редакторе и для ссылок на пакеты добавить свойство <ExcludeAssets>runtime</ExcludeAssets>.

Например:

<PackageReference Include="ModPlus.AutoCAD.API.2020">
  <Version>1.0.0</Version>
  <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="ModPlus.AutoCAD.Module.2020">
  <Version>4.2.9.1</Version>
  <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="ModPlus.ProductDatabase">
  <Version>2.2.0.11</Version>
  <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="ModPlusAPI">
  <Version>1.3.0</Version>
  <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>

После добавления этого свойства рекомендуется удалить папку obj в корне проекта и пересобрать решение

Имя плагина (не путать с Локализованным Названием) должно быть уникальным в контексте работы в ModPlus, так как имя плагина является его ключом и используется для идентификации.

За основу именования плагинов принято раннее правило именования команд в AutoCAD (на данный момент недоступно), согласно которому имя команд должно предваряться префиксом разработчика. Данное правило также схоже с Венгерской нотацией.

Все плагины в ModPlus для AutoCAD предваряются префиксом mp (mpTables, mpFormats и т.д.), для Revit – префиксом mpr (mprTools, mprDimByline и т.д.), для Renga – префиксом mr (mrObjectsFilter, mrBatchSheetExport и т.д.).

Каждый разработчик может использовать свой уникальный префикс или воспользоваться общими правилами именования ModPlus

© 2018-2020 modplus.org