====== Идентификаторы свойств. Теги. ======
Практически каждый семантический объект имеет набор присвоенных свойств (текстовых подписей (тип коммуникации, материал и т.д.), различных числовых характеристик (диаметр, количество) и т.д.). Для того чтобы значения этих свойств можно было использовать в различном функционале, например для отображения подписи на плане, а также формировать новые семантические свойства из совокупности других свойств (например подпись характеристик коммуникации на сечениях) необходимо использовать идентификатор (определение) свойств – **Тэги**. Т.е. при наличии у **Семантического свойства идентификатора** (Тэга) появляется возможность использовать значение этого **Свойства**, ссылаясь на него в любых других **Свойствах**, или например, при добавлении атрибута к условному знаку.
====== Список идентификаторов (Тегов) стандартных свойств элементов проекта. Пример использования. ======
У некоторых элементов проекта (Точка поверхности, Структурные линии) уже имеется стандартный набор свойств. У каждого стандартного свойства имеется свой идентификатор (Тэг).
Ниже приведена таблица, в которой приведен список стандартных свойств и соответствующие им идентификаторы (Тэги):
^ № п\п ^ Наименование Свойства элемента ^ Название идентификатора (Тэга) ^
| 1 |Положение X | X |
| 2 |Положение Y | Y |
| 3 |Положение Z | Z |
| 4 |Номер | NUMBER или NUM |
| 5 |Код | CODE |
| 6 |Описание | DESCRIPTION |
==== Пример использования идентификаторов (Тегов) стандартных свойств ====
Например, необходимо точечному условному знаку **«1003 Столб закрепления проекта планировки»** добавить отображение отметки, причем ее значение необходимо получить автоматически из свойств элемента **Точка поверхности**.
Для этого:
1. Назначьте соответствующий семантический объект (подробно назначение см. соотв.
пункт ниже), «1003 Столб закрепления проекта планировки», отобразится условный знак:{{ :road:list_identifier_1_.jpg?nolink |рис.1}}
2. Выделите условный знак, нажмите правой кнопкой мыши, в контекстном меню выберите Редактировать атрибуты, откроется диалоговое окно:{{ :road:list_identifier_2_.jpg?nolink |рис.2}}
* **Добавить** – для добавления нового атрибута;
* **Удалить** – для удаления выделенного атрибута;
* **Свойства** – для изменения свойств добавленных атрибутов;
* **Координата Х, Y, Угол поворота, Видимость** – для позиционирования атрибута относительно условного знака и управление видимостью.
3. Нажмите кнопку **Добавить**, откроется диалоговое окно:{{ :road:list_identifier_3_.jpg?nolink |рис.3}}
Для того чтобы из свойств точечного объекта получить значение высотного положения (отметку Z), в поле По умолчанию необходимо записать соответствующий идентификатор (Тег), который будет заключен с двух сторон символом процент, т.е. **%Z%.**
Параметры атрибутов описаны в __[[road:work_with_cmm:work_with_elements_drawing:assignment_attributes:start|п. Задание атрибутов]]__.
4. В окне **Добавления и Редактирования атрибутов** нажмите** Ок**, в результате, с заданными параметрами положения атрибута относительно условного знака будет отображаться добавленный атрибут.
{{ :road:list_identifier_4_.jpg?nolink |рис.4}}
==== Присвоение идентификаторов свойствам семантических объектов. Пример использования. ====
Любому из имеющихся семантических свойств можно присвоить идентификатор.
Для этого:
1. Выберите меню **Сервис – Менеджер структуры семантики**, в открывшемся окне **Объектного кодификатора** выделите необходимое семантическое свойство объекта:{{ :road:list_identifier_5_.jpg?nolink |рис.5}}
В текстовое поле **Тег** необходимо ввести **Идентификатор**.
Идентификаторы (Тэги) свойств могут быть двух видов – **Программные** и **Пользовательские**.
**Пользовательские идентификаторы** представляют собой любой набор символов латинского алфавита без пробелов, например **DISTANCE, MATERIAL** и т.д.
**Программные идентификаторы** представляют собой определенный набор символов латинского алфавита.
При назначении элементу проекта семантического объекта, у которого имеются свойства с программными идентификаторами (Тэгами), имеется возможность учитывать данные семантические объекты в различном программном функционале. Например, возможность учитывать объекты (точечные, линейные и площадные) при расчете 3D видимости или отображения габаритного расстояния от объекта до трассы.
К таким Тэгам относятся:
**PlanGabarit** – данный Тэг позволяет рассчитывать расстояние от точечного объекта до подобъектов трасс, с возможностью задания и графического отображения габаритного расстояния. {{ :road:list_identifier_6_.jpg?nolink |рис.6}}
В случае если габаритное расстояние от габарита до оси трассы выдерживается, то круг раскрашивается зеленым цветом, если нет, то красным.
Данный идентификатор имеется, например, у объекта **«5003 Габарит»**:{{ :road:list_identifier_7_.jpg?nolink |рис.7}}
**WIDTH и HEIGHT** – данные Тэги позволяют задать геометрические параметры (Высоту и Ширину) объекта, для учета его при расчете 3D видимости.
Данный идентификатор имеется, например, у объекта **«1040 Полоса древесных насаждений»**{{ :road:list_identifier_8_.jpg?nolink |рис.8}}
2. В поле **Тег** введите идентификатор свойства. В результате данному свойству будет присвоен идентификатор, с помощью которого имеется возможность использовать значение этого свойства.
==== Пример использования пользовательских идентификаторов ====
Рассмотрим назначение и варианты использования пользовательского идентификатора для добавленного семантического свойства.
Для этого:
1. Откройте** Менеджер структуры семантики**, в открывшемся окне **Объектного кодификатора** выделите необходимое семантическое свойство объекта, и в правой части окна задайте параметры согласно рисунку ниже:{{ :road:list_identifier_9_.jpg?nolink |рис.9}}
2. Задав имя **Тэга**, не обязательное **Пояснение** и **Значение по умолчанию**. В результате семантическому свойству «Характеристика объекта» будет присвоен идентификатор с помощью которого имеется возможность «извлечь» значение этого свойства, которое в дальнейшем может быть использовано для отображения его на плане, сечениях или в другом программном функционале.
3. Зададим точечный условный знак для объекта путем создания соответствующего свойства и выбора знака из библиотеки точечных условных знаков. Для примера выбран условный знак **Километрового столба**:{{ :road:list_identifier_10_.jpg?nolink |рис.10}}
Подробно см.__[[ road:commons_tasks:create_new_objects:start|п. Создание новых семантических объектов, Добавление точечного условного знака]]__.
==== Пример использования идентификатора для отрисовки значения свойства на плане: ====
1. Назначьте созданный семантический объект «6 Новый код» для элемента проекта **Точка поверхности**.
Назначение семантических объектов см. ниже.
2. В результате в окне **Свойств** выделенного объекта в поле **Семантика** отобразится назначенный объект и добавленное свойство «Характеристика объекта» со значением по умолчанию:{{ :road:list_identifier_11_.jpg?nolink |рис.11}}
3. Для отрисовки значения свойства на плане необходимо в окне Редактирования атрибутов добавить новый атрибут, задать необходимые параметры отрисовки и задать значение по умолчанию «%CHARACTERISTIC%»:{{ :road:list_identifier_12_.jpg?nolink |рис.12}}
Добавление атрибутов см.выше.
4. В окне **Добавления и Редактирования атрибутов** нажмите **ОК**. В результате введенное значение в поле свойства «Характеристика объекта» будет отображено на плане:{{ :road:list_identifier_12_.jpg?nolink |рис.13}}
==== Пример использования идентификатора в других функциях, в частности для отображения подписи в условном знаке сечения линейного объекта (т.е. в линейном контроллере сечений): ====
Для этого:
1. Откройте **Менеджер структуры семантики**, в открывшемся окне **Объектного кодификатора** для семантического объекта «6 Новый код» добавим свойство **Линейный контроллер сечений**, откроется диалоговое окно:{{ :road:list_identifier_13_.jpg?nolink |рис.13}}
Добавление свойства **Линейный контроллер сечений** см. раздел выше.
2. В открывшемся окне **Свойств** контроллера сечений установим необходимые параметры условного знака коммуникации (**Текст, Линия, Цвет, Отметка, Условный знак**), а также в поле **Описание слева или справа** введем необходимый идентификатор свойства (в данном случае **%CHARACTERISTIC%**), значение которого необходимо отрисовать с необходимой стороны условного знака:{{ :road:list_identifier_14_.jpg?nolink |рис.14}}
3. В окне **Свойств** контроллера сечений и **Менеджере структуры семантики** нажмите **ОК**.
4. Назначьте семантический объект «6 Новый код» для элемента проекта **Структурная линия**, которая пересекает ось трассы, и задайте необходимое описание в свойстве **Характеристика объекта**:{{ :road:list_identifier_15_.jpg?nolink |рис.15}}
В результате отобразится условный знак и введенная характеристика объекта:{{ :road:list_identifier_16_.jpg?nolink |рис.16}}