> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/ru/1_developer_primer_intro/3_developing_for_dynamo/4_publish_a_package.md).

# Публикация пакета

### Публикация пакета <a href="#publish-a-package" id="publish-a-package"></a>

Пакеты — это удобный способ хранения узлов и предоставления к ним доступа сообществу Dynamo. В пакет можно поместить любые элементы: от пользовательских узлов, созданных в рабочем пространстве Dynamo, до производных узлов NodeModel. Пакеты публикуются и устанавливаются с помощью диспетчера пакетов. Дополнительные сведения о пакетах см. в [руководстве](https://primer2.dynamobim.org/v/ru/6_custom_nodes_and_packages/6-2_packages/1-introduction).

#### Что такое диспетчер пакетов? <a href="#what-is-a-package-manager" id="what-is-a-package-manager"></a>

Диспетчер пакетов Dynamo — это программный реестр (похожий на npm), который можно открыть из Dynamo или в веб-браузере. Диспетчер пакетов обеспечивает установку, публикацию, обновление и просмотр пакетов. Как и npm, он поддерживает различные версии пакетов. Кроме того, он помогает управлять зависимостями проекта.

В браузере найдите пакеты и просмотрите статистику: [https://dynamopackages.com/](https://dynamopackages.com)

* В Dynamo диспетчер пакетов обеспечивает установку, публикацию и обновление пакетов.

![Поиск пакетов](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-e8d4df536352901a30874dae8a70d56c36a68cf5%2Fdynamopackagemanager.png?alt=media)

> 1. Поиск пакетов в Интернете: `Packages > Search for a Package...` (Пакеты > Поиск пакета).
> 2. Просмотр/редактирование установленных пакетов: `Packages > Manage Packages...` (Пакеты > Управлять пакетами).
> 3. Публикация нового пакета: `Packages > Publish New Package...` (Пакеты > Опубликовать новый пакет).

#### Публикация пакетов <a href="#publishing-a-package" id="publishing-a-package"></a>

Пакеты публикуются из диспетчера пакетов в Dynamo. Рекомендуется опубликовать пакет локально, протестировать его и затем опубликовать в Интернете, чтобы поделиться с сообществом. На основе примера NodeModel мы выполним все необходимые действия, чтобы опубликовать узел RectangularGrid в виде пакета локально, а затем в Интернете.

Запустите Dynamo и выберите `Packages > Publish New Package...` (Пакеты > Опубликовать новый пакет), чтобы открыть окно `Publish a Package` (Опубликовать пакет).

![Публикация пакетов](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-350f94ae832e9cde78300ac089915967b1a9b4cf%2Fdyn-publish-package-add-files.png?alt=media)

> 1. Выберите `Add file...` (Добавить файл) для поиска файлов, которые требуется добавить в пакет.
> 2. Выберите два файла `.dll` из примера NodeModel.
> 3. Нажмите `Ok`.

После добавления файлов в содержимое пакета присвойте пакету имя, описание и версию. При публикации пакета с помощью Dynamo автоматически создается файл `pkg.json`.

![Параметры пакета](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-313a9e6b634d384e09c7a458f047aae69bd63a4e%2Fdyn-publish-package.png?alt=media)

> Пакет готов к публикации.
>
> 1. Введите требуемые сведения: имя, описание и версию.
> 2. Чтобы опубликовать файл, нажмите кнопку «Опубликовать локально» и выберите папку пакета Dynamo: `AppData\Roaming\Dynamo\Dynamo Core\1.3\packages`. Узел будет доступен в Core. Всегда публикуйте пакет локально до тех пор, пока он не будет готов к публикации в открытом доступе.

После публикации пакета узлы будут доступны в библиотеке Dynamo в категории `CustomNodeModel`.

![Пакет в библиотеке Dynamo](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-3cf45c6c9a44ecf0a4990efee3537a69282b00bf%2Fdyn-publish-package-library.jpg?alt=media)

> 1. Пакет, созданный в библиотеке Dynamo

Когда пакет будет готов к публикации в Интернете, откройте диспетчер пакетов и выберите `Publish` (Опубликовать), а затем `Publish Online` (Опубликовать в Интернете).

![Публикация пакета в диспетчере пакетов](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-fe1dfadd3f2d2940cb7c5f60f32ccaa69b55b135%2Fdyn-publish-package-directory.jpg?alt=media)

> 1. Чтобы узнать, как пакет был отформатирован в Dynamo, щелкните значок с тремя точками справа от CustomNodeModel и выберите Show Root Directory (Показать корневой каталог).
> 2. Выберите `Publish` (Опубликовать), а затем `Publish Online` (Опубликовать в Интернете) в окне публикации пакета Dynamo.
> 3. Чтобы удалить пакет, выберите `Delete` (Удалить).

#### Как обновить пакет? <a href="#how-do-i-update-a-package" id="how-do-i-update-a-package"></a>

Процесс обновления пакета аналогичен процессу публикации. Откройте диспетчер пакетов, выберите `Publish Version...` (Публикация версии) для пакета, который необходимо обновить, и введите более позднюю версию.

![Публикация версии пакета](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-a37a00a3997274daf2cfdf943c84414c0c29e490%2Fdyn-publish-package-version.jpg?alt=media)

> 1. Выберите `Publish Version` (Публикация версии), чтобы дополнить существующий пакет новыми файлами в корневом каталоге, а затем выберите, следует ли опубликовать пакет локально или в Интернете.

#### Веб-клиент диспетчера пакетов <a href="#package-manager-web-client" id="package-manager-web-client"></a>

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

Дополнительные сведения об этих функциях см. в публикации блога: <https://dynamobim.org/discover-the-new-dynamo-package-management-experience/>.

Веб-клиент диспетчера пакетов можно найти на странице [https://dynamopackages.com/](https://dynamopackages.com)

![Веб-клиент диспетчера пакетов](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-c2fa6b86853ae08aa83c6a8a464e798451eb07e6%2Fpackagemanager-browser.jpg?alt=media)

**Обновление сведений о пакете**

Авторы могут изменить описание пакета, ссылку на веб-сайт и ссылку на репозиторий, выполнив следующие действия:

> 1. В разделе **Мои пакеты** выберите пакет и нажмите **Изменить сведения о пакете**.
> 2. Добавьте или измените ссылки **Веб-сайт** и **Репозиторий** в соответствующих полях.
> 3. При необходимости обновите **Описание пакета**.
> 4. Нажмите кнопку **Сохранить изменения**, чтобы применить изменения.

**Примечание**. Изменения отобразятся в диспетчере пакетов в Dynamo в течение 15 минут, поскольку обновление данных на сервере занимает некоторое время. В настоящее время мы стараемся сократить это время.

![Новый пользовательский интерфейс для изменения сведений об опубликованных пакетах](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-2f5ade731c3f1be3130817f9e4f624c455c21343%2FPackage-Manager_Image_5.png?alt=media)

**Изменение сведений о совместимости для опубликованных версий пакетов**

Сведения о совместимости для ранее опубликованных версий пакетов можно изменить задним числом. Выполните следующие действия:

![Редактирование сведений о совместимости для опубликованных пакетов — шаг 1](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-c4927853fea0d48dbcbef4b8e4f782e6cbbddab5%2FPackage-Manager_Image_6.png?alt=media)

**Шаг 1**

1. Щелкните версию пакета, которую требуется обновить.
2. В списке **Зависит от** будут автоматически указаны пакеты, от которых зависит ваш пакет.
3. Щелкните значок карандаша рядом с пунктом **Совместимость**, чтобы открыть рабочий процесс **Изменение сведений о совместимости**.

**Шаг 2**

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

![Выбор варианта для рабочего процесса «Изменение сведений о совместимости»](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-98065537ef2247862b24633636c316bf7667000e%2FPackage-Manager_Image_7.png?alt=media)

Рассмотрим несколько сценариев на примерах:

**Пример пакета 1** — Civil Connection. Этот пакет имеет зависимости API от Revit и Civil 3D и не включает коллекцию основных узлов (например, функции геометрии, математические функции и/или управление списками). В этом случае лучше подойдет вариант 1. Пакет будет отображаться как совместимый в Revit и Civil 3D и будет соответствовать диапазону версий и/или списку отдельных версий.

**Пример пакета 2** — Rhythm. Этот пакет представляет собой коллекцию специальных узлов Revit вместе с коллекцией основных узлов. В этом случае у пакета есть зависимости от основной программы. Кроме того, в него включены основные узлы, которые будут работать в Dynamo Core. В этом случае лучше подойдет вариант 2. Пакет будет отображаться как совместимый в Revit и Dynamo Core (Dynamo Sandbox) и будет соответствовать диапазону версий и/или списку отдельных версий.

**Пример пакета 3** — Mesh Toolkit. Это пакет Dynamo Core, который представляет собой коллекцию узлов геометрии, не имеющих зависимостей от основных программ. В этом случае лучше подойдет вариант 3. Пакет будет отображаться как совместимый в Dynamo и всех основных средах в соответствии с диапазоном версий и/или списком отдельных версий.

![Варианты изменения сведений о совместимости](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-9c6d2f70b3fde3b0a8e18f9527ee8da1f5a5200e%2FPackage-Manager_Image_8.png?alt=media)

В зависимости от выбранного варианта будут отображаться поля, относящиеся к Dynamo и/или основной программе, как показано на изображении ниже.

![Изменение сведений о совместимости — шаг 2](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-e8632dab0ac7bea8c3813bcf74729c2c96c71b38%2FPackage-Manager_Image_9.png?alt=media)
