# Расширения в виде пакетов

### Расширения в виде пакетов <a href="#extensions-as-packages" id="extensions-as-packages"></a>

### Обзор <a href="#overview" id="overview"></a>

Расширения Dynamo можно развернуть в диспетчере пакетов так же, как и обычные библиотеки узлов Dynamo. Если установленный пакет содержит расширение вида, оно загружается во время выполнения при загрузке Dynamo. Откройте консоль Dynamo и убедитесь, что расширение загружено правильно.

### Структура пакета <a href="#package-structure" id="package-structure"></a>

Структура пакета расширения совпадает со структурой обычного пакета.

```
C:\Users\User\AppData\Roaming\Dynamo\Dynamo Core\2.1\packages\Sample View Extension
│   pkg.json
├───bin
│       SampleViewExtension.dll
├───dyf
└───extra
        SampleViewExtension_ViewExtensionDefinition.xml
```

Если расширение уже собрано, то у вас уже должны быть сборка .NET и файл манифеста. Сборка должна содержать класс, который реализует `IViewExtension` или `IExtension`. XML-файл манифеста указывает Dynamo, какой класс следует создать для запуска расширения. Чтобы диспетчер пакетов нашел расширение, файл манифеста должен точно соответствовать расположению и имени сборки.

Все файлы сборки можно поместить в папку `bin`, а файл манифеста — в папку `extra`. В эту папку также можно поместить любые дополнительные компоненты.

Пример файла манифеста XML.

```
<ViewExtensionDefinition>
  <AssemblyPath>..\bin\MyViewExtension.dll</AssemblyPath>
  <TypeName>MyViewExtension.MyViewExtension</TypeName>
</ViewExtensionDefinition>
```

### Выгрузка <a href="#uploading" id="uploading"></a>

После создания папки, содержащей указанные выше подкаталоги, ее можно передать (выгрузить) в диспетчер пакетов. Следует помнить, что в настоящее время невозможно публиковать пакеты из Dynamo Sandbox. Это означает, что необходимо использовать Dynamo Revit. В Dynamo Revit перейдите в раздел Packages > Publish New Package (Пакеты > Опубликовать новый пакет). При этом пользователю будет предложено войти в свою учетную запись Autodesk, с которой требуется связать пакет.

На этом этапе должно быть открыто обычное окно публикации пакета, в котором необходимо заполнить все обязательные поля, относящиеся к пакету или расширению. Теперь **очень важно** убедиться в том, что ни один из файлов сборки не помечен как библиотека узлов. Для этого щелкните правой кнопкой мыши импортированные файлы (папка пакета, созданная выше). Откроется контекстное меню, в котором можно установить (или снять) флажок для этого параметра. Флажок должен быть снят для всех сборок расширений.

Перед публикацией в открытом доступе сначала опубликуйте пакет локально, чтобы убедиться в том, что все работает надлежащим образом. Проверив работу, нажмите кнопку публикации.

### Извлечение <a href="#pulling" id="pulling"></a>

Чтобы убедиться в том, что пакет успешно загружен, попробуйте найти его по имени и ключевым словам, указанным на этапе публикации. Наконец, важно отметить, что для работы расширений потребуется перезагрузка Dynamo. Как правило, для этих расширений необходимы параметры, заданные при загрузке Dynamo.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://primer2.dynamobim.org/ru/1_developer_primer_intro/3_developing_for_dynamo/2-extensions-as-packages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
