Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
developers:tutorial:smdx:customimelements [2022/12/06 10:21] proxor создано |
developers:tutorial:smdx:customimelements [2022/12/07 10:22] (текущий) proxor |
||
---|---|---|---|
Строка 21: | Строка 21: | ||
* **units** – единицы измерения для типов int или float | * **units** – единицы измерения для типов int или float | ||
* **values** – перечисление вариантов для типа enum. Варианты описываются парой идентификатор/значение | * **values** – перечисление вариантов для типа enum. Варианты описываются парой идентификатор/значение | ||
- | Пользовательская библиотека элементов информационной модели | + | |
+ | ==== Пользовательская библиотека элементов информационной модели ==== | ||
Создадим библиотеку элементов ИМ, которая будет содержать в себе следующие элементы: | Создадим библиотеку элементов ИМ, которая будет содержать в себе следующие элементы: | ||
* **SmdxCustomElement** – пользовательский элемент, наследник от базового класса **SmdxElement**. В нём определено свойство **caption** и задано его значение. | * **SmdxCustomElement** – пользовательский элемент, наследник от базового класса **SmdxElement**. В нём определено свойство **caption** и задано его значение. | ||
Строка 28: | Строка 30: | ||
* **SmdxCustomCubeElement** – элемент кубической формы, наследник от **SmdxCustomVolumeElement**. В нём переопределено значение свойств **caption** и **shape**. Значения этих свойств установлены фиксированными, чтобы их нельзя было изменить через инспектор свойств. Также добавлено свойство **width** типа **double** и единицей изменения **m** (метр). | * **SmdxCustomCubeElement** – элемент кубической формы, наследник от **SmdxCustomVolumeElement**. В нём переопределено значение свойств **caption** и **shape**. Значения этих свойств установлены фиксированными, чтобы их нельзя было изменить через инспектор свойств. Также добавлено свойство **width** типа **double** и единицей изменения **m** (метр). | ||
* Элементы **SmdxCustomCylinder_0,5**, **SmdxCustomCylinder_1,0**, **SmdxCustomCube_0,5**, **SmdxCustomCube_1,0** – конкретные реализации цилиндрических и кубических элементов с соответствующими значениями свойств диаметра и ширины соответственно. | * Элементы **SmdxCustomCylinder_0,5**, **SmdxCustomCylinder_1,0**, **SmdxCustomCube_0,5**, **SmdxCustomCube_1,0** – конкретные реализации цилиндрических и кубических элементов с соответствующими значениями свойств диаметра и ширины соответственно. | ||
+ | |||
+ | График наследования для **SmdxCustomCylinder_0,5** будет выглядеть так: | ||
+ | |||
+ | * SmdxCustomCylinder_0,5 | ||
+ | * SmdxCustomCylinderElement | ||
+ | * SmdxCustomVolumeElement | ||
+ | * SmdxCustomElement | ||
+ | * SmdxElement | ||
+ | |||
Создайте текстовый файл **customtypes.smdx** и поместите его в директорию\\ «**C:\ProgramData\Topomatic\Robur <TYPE>\16.0\Support\Smdx\**». Заполните файл следующим образом: | Создайте текстовый файл **customtypes.smdx** и поместите его в директорию\\ «**C:\ProgramData\Topomatic\Robur <TYPE>\16.0\Support\Smdx\**». Заполните файл следующим образом: | ||
Строка 175: | Строка 186: | ||
</file> | </file> | ||
+ | Откроем менеджер структуры Smdx и убедимся, что описанные выше типы появились в библиотеке. | ||
+ | {{ :developers:tutorial:smdx:tut_smdx_lib_1.png?nolink |}} | ||
+ | {{ :developers:tutorial:smdx:tut_smdx_lib_2.png?nolink |}} |