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

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-6f0dd312abae465495bada0f7b333bbb4168c95e%2FToolbar%20based%20plugin.gif?alt=media)

### Структура файла 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](https://windows.help.formit.autodesk.com/ru/plugins/how-to-develop-plugins/advanced-development/general-plugin-setup-in-the-manifest) подключаемый модуль панели инструментов содержит следующее специальное свойство 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 могла найти файлы.
