Публичное API помогает разработчикам, использующим платформу AIS для распространения своих решений, создавать и адаптировать решения для распространения через Маркетплейс.


Поддерживаемые языки программирования

Наименование ЯПНачиная с версииДо версии (включительно)
C#8.012.x


Поддерживаемые Продукты

НаименованиеНачиная с версииДо версии (включительно)
Revit20192025


Поддерживаемые фреймворки и программные пакеты

НаименованиеВерсияЯППродукты
.NET Framework4.8C#Revit 2019 - 2024
.NET8C#Revit 2025

Термины

Родительский Продукт - программное обеспечение (комплекс программного обеспечения) для которого доступно расширение базовых возможностей.

Разработчик - юридическое или физическое лицо разрабатывающее/разработавшее расширение для Родительского Продукта на платформе AIS.

Платформа AIS - программное решение интегрируемое в Родительские Продукты и позволяющее создавать/адаптировать и распространять Разработчикам их программные расширения базового функционала для Родительских Продуктов.

Команда - программное решение, разработанное Разработчиком, расширяющее возможности поддерживаемого Родительского Продукта.

Плагин - физическая группа Команд. Такой набор Команд, в котором каждая отдельная Команда не может быть поставлен/использована отдельно/независимо.

Пакет - логическая группа Команд. Набор Команд, объединенный по какому-либо логическому признаку.

Маркетплейс - магазин программных расширений Родительских Продуктов созданных/адаптированных Разработчиками.

Пакет поставки - специализированный файл, подготовленный при помощи утилит входящих в комплект SDK, содержащий всю необходимую информацию для выполнения публикации на Маркетплейсе созданного/адаптированного Разработчиком под платформу AIS программного расширения Родительского Продукта.

Сборка - физический бинарный файл, содержащий исполняемую и описательную часть Команды.


Общее описание

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

Рекомендуется использовать для каждой Команды свою (отдельную) Сборку, Сборки объединять, по необходимости, в Пакеты.


Основными объектами для описания Команды являются реализации:

ОбъектОбязательноСпецифично для РППримечание
Дочерние описания ICommandДа
Уникальные описания для каждой Команды размещенной в Сборке
Описание IDeveloperДа
Уникальное описание Разработчика которому принадлежат Команды размещенные в Сборке

Описание IPlugin



Указывается в случае невозможности деления Команд размещенных в Сборке

Описание IPackage



Указывается в случае участия Команд размещенных в Сборке в Пакете(ах)


Дочерние описание поддерживаемых элементов управления IRevitControlДаRevit 2019 - 2025Выполняет описание допустимого элемента управления для Команды


Правила описания объектов Сборки

Описание IDeveloper должно всегда присутствовать в каждой Сборке. Допускается только единственное описание IDeveloper для всей Сборки.

В каждой Сборке должно присутствовать минимум одно дочернее описание ICommand. Допускается, но крайне не рекомендуется, наличие описания для различных Родительских Продуктов в рамках одной Сборки. Рекомендуется располагать в одной Сборке описание только одной Команды.

Описания IPlugin и/или IPackage должны присутствовать в случаях физической и/или логической группировки расположенных в Сборке Команд. Допускается множественное описание IPlugin и/или IPackage.

Правила описания для Родительского Продукта Revit

Дочерние описание одного из поддерживаемых элементов управления IRevitControl должно быть обязательно указано/реализовано в описании Команды (IRevitCommand). Команды без описания элемента управления у Команды не будут видны/доступны для вызова в графическом интерфейсе Родительского Продукта.

Допускается отсутствие реализации элемента управления IRevitControl только у фоновых и вспомогательных Команд.

Функционал фоновых и вспомогательных Команд находится в разработке и будет доступен в будущих версиях/релизах.


Объекты API

Все объекты API можно разделить на несколько групп: описательные, вспомогательные, служебные, справочные.


Описательные объекты

Помогают выполнить описание программного(ых) решения(й) размещаемых в Сборке.

К описательным объектам относятся:


Вспомогательные объекты

Помогаю Разработчику в создании/адаптации программного решения под платформу AIS.

К вспомогательным объектам относятся:


Служебные объекты

Помогают в реализации дополнительных параметров описания. Являются самостоятельными инструментами.

К служебным объектам относятся:


Справочные объекты

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

К справочным объектам относятся:


Оглавление по объектам API