Сoздание параметров#

Все пользовательские параметры описываются в файле JSON.

Примечание

Для описание параметров можно пользоваться любым текстовым редактором с подсветкой синтаксиса JSON

Файл должен состоять из объекта JSON metadata, массивов styleParameters и ports:

1{
2    "metadata": {..},
3    "styleParameters": [..],
4    "ports": [..]
5}

Метаданные#

В объекте metadata описывается общая информация о категории оборудования (отображается в диалоге «Категории», но не в самом стиле объекта Renga).

1{
2    "metadata": {
3        "defaultName": "Название оборудования",
4        "description": "Описание",
5        "version": "1.0.0",
6        "author": "Иванов Иван Иванович"
7    },
8    ..
9}

Параметры стиля#

Массив styleParameters — это упорядоченная коллекция групп параметров, которые будут представлены в диалоге стиля объекта. Каждая группа параметров — это объект JSON со своими атрибутами. В массиве params перечисляются параметры, входящие в эту группу.

 1{
 2    ..
 3    "styleParameters": [
 4        {
 5            "name": "General",
 6            "text": "Общие",
 7            "params": [..]
 8        },
 9        {
10            "name": "Dimensions",
11            "text": "Габаритные размеры",
12            "params": [..]
13        },
14        ..
15    ],
16    ..
17}

Соглашение об описании параметров

Для унификации отображения параметров в диалоге стиля объекта принято группу «Общие» делать первой в списке, второй — группу «Габаритные размеры», а затем указывать группы «Порты» или «Точки подключения».

Пример:

_images/Group_params.png

Для любого параметра обязательным является атрибут name. Он является ключом для получения значения этого параметра в скриптах. См. следующую главу Назначение параметров

Типы параметров диалога стиля объекта#

Параметры можно создавать различных типов. В зависимости от используемого типа они по-разному отображаются во вкладке «Параметры» диалога стиля объекта.

ID#

Используется для указания материала объекта.

Примечание

Материал задается один на весь объект.

Задается с помощью следующих атрибутов:

  • name — имя параметра,

  • text — отображаемое имя параметра в диалоге стиля Renga,

  • type — тип параметра,

  • entityTypeId — указывает на уникальный идентификатор системного типа Renga — Материал. См. Справку по API Renga.

Соглашение об описании параметров

Параметр «Материал» указывается в группе «Общие»

Пример 1. Описание параметра material#
1{
2    "name": "material",
3    "text": "Материал",
4    "type": "Id",
5    "entityTypeId": "0abcb18f-0aaf-4509-bf89-5c5fad9d5d8b"
6}

Данный параметр отображается в виде раскрывающегося списка (Combobox) для выбора пользователем нужного материала.

_images/material_param.png

UserEnum#

Указывается при задании возможных вариантов исполнения объекта.

Для задания параметра типа UserEnum используются следующие атрибуты:

  • name — имя параметра,

  • text — отображаемое имя параметра в диалоге стиля Renga,

  • type — тип параметра,

  • default — значение по-умолчанию,

  • items — список вариантов.

Пример 2. Описание параметра bodyShape#
 1{
 2    "name": "bodyShape",
 3    "text": "Форма корпуса",
 4    "type": "UserEnum",
 5    "default": "volute",
 6    "items": [
 7        {
 8            "key": "rectangle",
 9            "text": "Прямоугольник"
10        },
11        {
12            "key": "circle",
13            "text": "Круг"
14        },
15        {
16            "key": "volute",
17            "text": "Спираль"
18        }
19    ]
20}

Данный параметр отображается в виде раскрывающегося списка (Combobox) для выбора пользователем нужного значения.

_images/list_param.png

CoreEnum#

Параметры типа CoreEnum используются для указания:

  • Вида соединения точек подключения (для трубопроводного оборудования PipeConnectorType, для вентиляционного оборудования DuctConnectorType)

  • Диаметра резьбы (в случае резьбового соединения труб PipeThreadSize)

Для определения таких параметров используются следующие атрибуты:

Пример 3. Описание параметра connectorType#
1{
2    "name": "connectorType",
3    "text": "Вид соединения",
4    "type": "CoreEnum",
5    "coreEnumType": "DuctConnectorType",
6    "default": "DriveSlip"
7}

Данный параметр отображается в виде раскрывающегося списка (Combobox) для выбора пользователем нужного значения.

_images/enum_param.png

Length#

Используется для любого метрического параметра (длина, ширина, диаметр,..) для указания пользовательского значения.

Для задания параметра типа Length используются следующие атрибуты:

  • name — имя параметра

  • text — отображаемое имя параметра в диалоге стиля Renga

  • type — тип параметра

  • default — значение по-умолчанию

  • min — минимально возможное значение

  • max — максимально возможное значение

Пример 4. Описание параметра nominalDiameter#
1{
2    "name": "nominalDiameter",
3    "text": "Номинальный диаметр",
4    "type": "Length",
5    "default": 225,
6    "min": 10,
7    "max": 1000000
8}

Данный параметр отображается в виде поля для ввода пользователем нужного значения.

_images/length_param.png

Если пользователь захочет ввести значение, которое находится вне диапазона, установленного атрибутами min и max, то Renga просигнализирует о недопустимом значении красной рамкой в поле ввода и не примет его:

_images/invalid_input.png

Angle#

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

Для задания параметра типа Angle используются следующие атрибуты:

  • name — имя параметра

  • text — отображаемое имя параметра в диалоге стиля Renga

  • type — тип параметра

  • default — значение по-умолчанию

  • min — минимально возможное значение

  • max — максимально возможное значение

Пример 5. Описание параметра angleBetweenInletAndBody#
1{
2    "name": "angleBetweenInletAndBody",
3    "text": "Угол между входом и корпусом",
4    "type": "Angle",
5    "default": 135,
6    "min": 0,
7    "max": 180
8}

Данный параметр отображается в виде поля для ввода пользователем нужного значения.

_images/angle_param.png

Boolean#

Параметр, принимающий только два значения — Да/Нет.

Для задания параметра типа Boolean используются следующие атрибуты:

  • name — имя параметра

  • text — отображаемое имя параметра в диалоге стиля Renga

  • type — тип параметра

  • default — значение по-умолчанию

Пример 5. Описание параметра isMounted#
1{
2    "name": "isMounted",
3    "text": "Навесное",
4    "type": "Boolean",
5    "default": false
6}

Данный параметр отображается в виде раскрывающегося списка (Combobox) для выбора пользователем нужного значения.

_images/bool_param.png

Real и Integer#

Параметры для указания числового значения. Real — действительное число (с дробной частью), Integer — целое число.

Для задания параметров типа Real или Integer используются следующие атрибуты:

  • name — имя параметра

  • text — отображаемое имя параметра в диалоге стиля Renga

  • type — тип параметра

  • default — значение по-умолчанию

  • min — минимально возможное значение

  • max — максимально возможное значение

Данные параметры отображаются в виде поля для ввода пользователем нужного значения.

String#

Параметры для указания строкового значения (текста).

Для задания параметра типа String используются следующие атрибуты:

  • name — имя параметра

  • text — отображаемое имя параметра в диалоге стиля Renga

  • type — тип параметра

  • default — значение по-умолчанию

Данный параметр отображается в виде поля для ввода пользователем нужного значения.

Параметры точек подключения#

Массив ports содержит описание точек подключения (портов) оборудования. Каждое описание порта представляет собой объект JSON, в качестве имени name которого указывается имя порта. Количество объектов JSON равно количеству портов. В портах перечисляются категории инженерных систем, к которым будет подключаться оборудование и их параметры.

flowDirection — направление потока. Указывается идентификатор согласно таблице:

идентификатор

описание

Inlet

вход

Outlet

выход

InletAndOutlet

неопределенный

Внимание

Если в JSON не указан атрибут flowDirection, то направление потока в порту будет иметь значение InletAndOutlet

systemCategories представляет собой массив идентификаторов категорий систем (трубопроводных, воздуховодных или электрических), к которым можно будет подключать оборудование в выбранной категории.

Пример 5. Описание портов оборудования.#
 1{
 2    ..
 3    "ports": [
 4        {
 5            "name": "coldWater",
 6            "text": "Бытовое холодное водоснабжение",
 7            "flowDirection": "Inlet"
 8            "systemCategories": [
 9                "DomesticColdWater"
10            ]
11        },
12        {
13            "name": "hotWater",
14            "text": "Бытовое горячее водоснабжение",
15            "flowDirection": "Inlet"
16            "systemCategories": [
17                "DomesticHotWater"
18             ]
19        },
20        {
21            "name": "sewage",
22            "text": "Канализация",
23            "flowDirection": "Outlet"
24            "systemCategories": [
25                "DomesticSewage",
26                "IndustrialSewage"
27            ]
28        },
29        ..
30    ]
31}

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

идентификатор

описание

TransitPort

транзитный порт — порт для размещения объекта на трассе

EndPort

конечный порт — порт для создания трассы от объекта

Например, чтобы аксессуар трубопровода можно было и разместить на трубопроводной трассе, и подключить к электрической системе, опишите порты следующим образом:

Пример 6. Описание портов аксессуара трубопровода с определенными ролями портов.#
 1{
 2    ..
 3    "ports": [
 4        {
 5            "name": "PipeInlet",
 6            "text": "Трубопроводный вход",
 7            "flowDirection": "Inlet",
 8            "portRole": "TransitPort",
 9            "systemCategories": [
10                // Список категорий трубопроводных систем
11            ]
12        },
13        {
14            "name": "PipeOutlet",
15            "text": "Трубопроводный выход",
16            "flowDirection": "Outlet",
17            "portRole": "TransitPort",
18            "systemCategories": [
19                // Список категорий трубопроводных систем
20            ]
21        },
22        {
23            "name": "ElectricPort",
24            "text": "Для подключения электричества",
25            "flowDirection": "InletAndOutlet",
26            "portRole": "EndPort",
27            "systemCategories": [
28                "PowerCircuit"
29            ]
30        }
31    ]
32}

Идентификаторы категорий систем#

Соглашение о наименовании

Все идентификаторы пишутся в PascalCase

  • Категории трубопроводных систем

идентификатор

описание

DomesticColdWater

бытовое холодное водоснабжение

DomesticHotWater

бытовое горячее водоснабжение

DomesticSewage

бытовая канализация

Gas

бытовое газоснабжение

Firewater

водяное пожаротушение

Heating

водяное теплоснабжение

GaseousFireSuppression

газовое пожаротушение

Rainwater

дождевая канализация

IndustrialColdWater

производственное холодное водоснабжение

IndustrialHotWater

производственное горячее водоснабжение

IndustrialSewage

производственная канализация

OtherPipeSystem

прочие трубопроводные системы

  • Категории воздуховодных систем

идентификатор

описание

Ventilation

приточная вентиляция

Exhaust

вытяжная вентиляция

Pressurization

приточное дымоудаление

SmokeExhaust

вытяжное дымоудаление

Vacuum

пылеудаление

OtherDuctSystem

прочие воздуховодные системы

  • Категории электрических систем

идентификатор

описание

LightingCircuit

осветительная сеть

PowerCircuit

силовая сеть

OtherElectricalSystem

прочие электрические системы