# Создание подключаемого модуля панели инструментов

![](/files/GxIh1bnXWUnHhzcd7EYW)

### Структура файла manifest.json подключаемого модуля панели инструментов

Подключаемый модуль панели инструментов содержит файл *manifest.json* со следующей структурой.

```
{
    "PluginName": "Flip Along",
    "PluginType": "Toolbar",
    "PluginDescription": "Creates a toolbar with X, Y, and Z buttons to quickly flip selected geometry in the direction of the selected axis.",
    "ToolbarURL": "PLUGINLOCATION/toolbar.json",
    "Scripts": [
        "PLUGINLOCATION/flipalong.js"
    ]
}               
```

В дополнение к [стандартным свойствам JSON](/ru/plugins/how-to-develop-plugins/advanced-development/general-plugin-setup-in-the-manifest.md) подключаемый модуль панели инструментов содержит следующее специальное свойство JSON.

* ToolbarURL сообщает FormIt, что этот подключаемый модуль представляет собой панель инструментов и содержит ссылку на другой файл JSON, где описываются функциональные возможности панели инструментов.

### Настройка формата панели инструментов с помощью JSON

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

```
{
    "name": "Flip Along Toolbar",
    "buttons": [
        {
            "name": "Flip Along X",
            "command": "FlipAlongPlugin.ButtonX",
            "iconText": "X",
            "iconURL": "[Icon URL]"
        },
        {
            "name": "Flip Along Y",
            "command": "FlipAlongPlugin.ButtonY",
            "iconText": "Y",
            "iconURL": "[Icon URL]"
        },
        {
            "name": "Flip Along Z",
            "command": "FlipAlongPlugin.ButtonZ",
            "iconText": "Z",
            "iconURL": "[Icon URL]"
        }
    ]
}               
```

Файл toolbar.json содержит следующие свойства JSON.

* Свойство name представляет собой имя всей панели инструментов и используется для внутреннего связывания всех кнопок с единым меню панели инструментов.
* Свойство buttons — это отдельные кнопки, добавленные на панель инструментов. Панель инструментов может иметь любое количество кнопок.
* Свойство name определяет внутреннее имя кнопки, которое используется для связи кнопки с панелью инструментов, а также с функцией onClick кнопки.
* Свойство command определяет функцию кнопки, которая может быть реализована в одной из следующих форм: как функция JavaScript (которая может быть определена в сценарии, содержащемся в поле Scripts файла manifest.json) или как команда FormIt, например Draw: Circle. Для получения списка команд FormIt можно запустить подключаемый модуль Messages.
* Свойство iconText определяет текст подсказки и описания для кнопки. Если URL-адрес значка не указан, введенный текст создаст автоматически формируемый значок с отформатированным текстом.
* Свойство iconURL можно задать для определения пользовательского значка кнопки.

Когда все кнопки будут определены в файле toolbar.json, подключаемый модуль будет готов к работе.

Если требуется определить какие-то другие функции JavaScript, добавьте их в ту же папку, где находится файл manifest.json. Обязательно добавьте ссылку на файл в поле Scripts файла манифеста, чтобы программа FormIt могла найти файлы.


---

# 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://windows.help.formit.autodesk.com/ru/plugins/how-to-develop-plugins/additional-development-options/creating-a-toolbar-based-plugin.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.
