С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}
Соглашение об описании параметров
Для унификации отображения параметров в диалоге стиля объекта принято группу «Общие» делать первой в списке, второй — группу «Габаритные размеры», а затем указывать группы «Порты» или «Точки подключения».
Пример:
Для любого параметра обязательным является атрибут name
. Он является ключом для получения значения этого параметра в скриптах. См. следующую главу Назначение параметров
Типы параметров диалога стиля объекта#
Параметры можно создавать различных типов. В зависимости от используемого типа они по-разному отображаются во вкладке «Параметры» диалога стиля объекта.
ID#
Используется для указания материала объекта.
Примечание
Материал задается один на весь объект.
Задается с помощью следующих атрибутов:
name
— имя параметра,text
— отображаемое имя параметра в диалоге стиля Renga,type
— тип параметра,entityTypeId
— указывает на уникальный идентификатор системного типа Renga — Материал. См. Справку по API Renga.
Соглашение об описании параметров
Параметр «Материал» указывается в группе «Общие»
1{
2 "name": "material",
3 "text": "Материал",
4 "type": "Id",
5 "entityTypeId": "0abcb18f-0aaf-4509-bf89-5c5fad9d5d8b"
6}
Данный параметр отображается в виде раскрывающегося списка (Combobox) для выбора пользователем нужного материала.
UserEnum#
Указывается при задании возможных вариантов исполнения объекта.
Для задания параметра типа UserEnum используются следующие атрибуты:
name
— имя параметра,text
— отображаемое имя параметра в диалоге стиля Renga,type
— тип параметра,default
— значение по-умолчанию,items
— список вариантов.
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) для выбора пользователем нужного значения.
CoreEnum#
Параметры типа CoreEnum используются для указания:
Вида соединения точек подключения (для трубопроводного оборудования PipeConnectorType, для вентиляционного оборудования DuctConnectorType)
Диаметра резьбы (в случае резьбового соединения труб PipeThreadSize)
Для определения таких параметров используются следующие атрибуты:
name
— имя параметраtext
— отображаемое имя параметра в диалоге стиля Rengatype
— тип параметраcoreEnumType
— идентификатор системных перечисленийdefault
— значение по-умолчанию
1{
2 "name": "connectorType",
3 "text": "Вид соединения",
4 "type": "CoreEnum",
5 "coreEnumType": "DuctConnectorType",
6 "default": "DriveSlip"
7}
Данный параметр отображается в виде раскрывающегося списка (Combobox) для выбора пользователем нужного значения.
Length#
Используется для любого метрического параметра (длина, ширина, диаметр,..) для указания пользовательского значения.
Для задания параметра типа Length используются следующие атрибуты:
name
— имя параметраtext
— отображаемое имя параметра в диалоге стиля Rengatype
— тип параметраdefault
— значение по-умолчаниюmin
— минимально возможное значениеmax
— максимально возможное значение
1{
2 "name": "nominalDiameter",
3 "text": "Номинальный диаметр",
4 "type": "Length",
5 "default": 225,
6 "min": 10,
7 "max": 1000000
8}
Данный параметр отображается в виде поля для ввода пользователем нужного значения.
Если пользователь захочет ввести значение, которое находится вне диапазона, установленного атрибутами min
и max
, то Renga просигнализирует о недопустимом значении красной рамкой в поле ввода и не примет его:
Angle#
Используется для параметра, указывающего значение угла в градусах.
Для задания параметра типа Angle используются следующие атрибуты:
name
— имя параметраtext
— отображаемое имя параметра в диалоге стиля Rengatype
— тип параметраdefault
— значение по-умолчаниюmin
— минимально возможное значениеmax
— максимально возможное значение
1{
2 "name": "angleBetweenInletAndBody",
3 "text": "Угол между входом и корпусом",
4 "type": "Angle",
5 "default": 135,
6 "min": 0,
7 "max": 180
8}
Данный параметр отображается в виде поля для ввода пользователем нужного значения.
Boolean#
Параметр, принимающий только два значения — Да/Нет.
Для задания параметра типа Boolean используются следующие атрибуты:
name
— имя параметраtext
— отображаемое имя параметра в диалоге стиля Rengatype
— тип параметраdefault
— значение по-умолчанию
1{
2 "name": "isMounted",
3 "text": "Навесное",
4 "type": "Boolean",
5 "default": false
6}
Данный параметр отображается в виде раскрывающегося списка (Combobox) для выбора пользователем нужного значения.
Real и Integer#
Параметры для указания числового значения. Real — действительное число (с дробной частью), Integer — целое число.
Для задания параметров типа Real или Integer используются следующие атрибуты:
name
— имя параметраtext
— отображаемое имя параметра в диалоге стиля Rengatype
— тип параметраdefault
— значение по-умолчаниюmin
— минимально возможное значениеmax
— максимально возможное значение
Данные параметры отображаются в виде поля для ввода пользователем нужного значения.
String#
Параметры для указания строкового значения (текста).
Для задания параметра типа String используются следующие атрибуты:
name
— имя параметраtext
— отображаемое имя параметра в диалоге стиля Rengatype
— тип параметраdefault
— значение по-умолчанию
Данный параметр отображается в виде поля для ввода пользователем нужного значения.
Параметры точек подключения#
Массив ports
содержит описание точек подключения (портов) оборудования. Каждое описание порта представляет собой объект JSON, в качестве имени name
которого указывается имя порта. Количество объектов JSON равно количеству портов. В портах перечисляются категории инженерных систем, к которым будет подключаться оборудование и их параметры.
flowDirection
— направление потока. Указывается идентификатор согласно таблице:
идентификатор |
описание |
---|---|
Inlet |
вход |
Outlet |
выход |
InletAndOutlet |
неопределенный |
Внимание
Если в JSON не указан атрибут flowDirection
, то направление потока в порту будет иметь значение InletAndOutlet
systemCategories
представляет собой массив идентификаторов категорий систем (трубопроводных, воздуховодных или электрических), к которым можно будет подключать оборудование в выбранной категории.
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 |
конечный порт — порт для создания трассы от объекта |
Например, чтобы аксессуар трубопровода можно было и разместить на трубопроводной трассе, и подключить к электрической системе, опишите порты следующим образом:
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 |
прочие электрические системы |