Основы режимов хранения и оценки атрибутов схемы
Создавая атрибут схемы, нужно указать режим хранения и оценки. Режим хранения определяет, должны ли значения атрибута схемы храниться в наборе схематических данных. Режим оценки атрибута схемы определяет, когда необходимо переоценивать значения атрибута схемы.
Хранение атрибута схемы
Существует три варианта хранения значения атрибута схемы:
- хранение в поле в наборе схематических данных (В поле (Field));
- хранение в наборе свойств в наборе схематических данных (В наборе свойств (Property Set));
- никогда не хранить (Не сохранять (No Storage)).
Для атрибута схемы, имя которого совпадает с предустановленным именем атрибута, режим хранения задать нельзя. Хранением этих особых атрибутов полностью управляет Schematics, не допуская каких-либо настроек. В большинстве случаев режим хранения основан на системном поле в связанном классе объектов схемы или в классе схематических представлений.
Хранение в поле
Поле является значением хранилища по умолчанию для большинства атрибутов. Данный вариант позволяет хранить значения атрибутов схемы в поле в связанном классе объектов схемы или в классе схематических представлений. Эти значения становятся доступными при применении инструмента Идентифицировать (Identify) к объектам схемы или при выборе команды Открыть таблицу атрибутов (Open Attribute Table) в любом слое объектов, который содержит схематический слой.
Чтобы атрибуты схемы указывали, как будут отображаться и снабжаться надписями объекты схемы в схематических представлениях, значения атрибутов должны храниться в виде полей в связанном с ними классе объектов схемы.
- Сначала создайте связанное поле в классе объектов схемы или в классе схематических представлений в ArcCatalog.
- Затем создайте атрибут схемы для класса объектов схемы или класса схематических представлений в редакторе набора схематических данных.
Хранение в наборе свойств
Вариант хранения в наборе свойств необходимо использовать, когда нужно сохранить значения атрибута схемы в наборе схематических данных, но эта информация необязательно должна быть четко доступна из поля в связанном классе объектов схемы или классе схематических представлений. В этом случае свойством из набора свойств, имя которого совпадает с именем атрибута схемы, будет автоматически управлять поле PROPERTYSET связанного объекта схемы или поле BLOBS связанного схематического представления каждый раз, когда выполняется оценка атрибута схемы.
Не сохранять
Режим Не сохранять (No Storage) необходимо использовать, когда значения атрибута схемы не требуется хранить в наборе схематических данных. Его часто указывают для атрибутов схемы, значения которых используются как часть другого атрибута, а хранятся значения этого второго атрибута.
Оценка атрибута схемы
Можно выбрать четыре варианта случая, когда должна выполняться оценка значений атрибутов схемы:
- При создании/обновлении
- При начале редактирования
- При перерисовке/обновлении (On Refresh/Redraw);
- По необходимости (As Needed).
Оценка При создании/обновлении (On Generate/Update)
Атрибуты схемы, для которых выбрана оценка при создании/обновлении, оцениваются во время создания схемы. Затем они заново оцениваются каждый раз, когда схематическое представление обновляется. Кроме этих особых моментов в течение срока службы схематического представления, переоценка атрибутов не выполняется.
Такой тип оценки используется наиболее часто.
Оценка При начале редактирования (On Start Editing)
Если для типа оценки установлено При начале редактирования (On Start Editing), атрибуты схемы оцениваются не только во время создания и обновления схемы, но и каждый раз, когда схематическое представление загружается в память, — например, в момент начала сеанса редактирования схематического представления. В этом случае, если значения атрибута изменились и задан режим хранения В поле (Field) или В наборе свойств (Property Set), новые значения автоматически сохраняются в таблице связанного класса объектов схемы или класса схематических представлений во время сохранения изменений схемы.
Схема всегда загружается в память, когда запускается сеанс ее редактирования. Также она может автоматически загружаться в память во время открытия.
Более подробно о схематических представлениях, загруженных в память
Тип оценки При начале редактирования (On Start Editing) предустановлен для любого атрибута, который должен оцениваться регулярно без обновления всего содержимого схемы. Этот режим также задан для атрибутов, указанных для классов объектов схемы, которые были настроены при помощи динамических пользовательских запросов.
Оценка При перерисовке/обновлении (On Refresh/Redraw)
Если задан режим оценки При перерисовке/обновлении (On Refresh/Redraw), значения атрибута схемы будут систематически переоцениваться во время создания схемы, при каждом ее обновлении, загрузке в память, а также при каждом обновлении или перерисовке схематического представления — когда меняется масштаб или экстент схемы, когда перемещаются содержащиеся в ней объекты схемы и т.п.
Этот тип оценки целесообразно использовать, когда атрибуты схемы связаны с часто меняющимися данными (например, в приложениях SCADA).
Как и в любом другом режиме оценки, в случае оценки При перерисовке/обновлении (On Refresh/Redraw) атрибуты схемы можно использовать напрямую для задания символики объектов схемы, независимо от типа атрибута. Однако, в режиме При перерисовке/обновлении (On Refresh/Redraw) атрибуты схемы типа Связанное поле (Associated Field) нельзя напрямую использовать для создания надписей. В этом особом случае средства создания надписей ArcMap по умолчанию принудительно не загружают значения связанного поля, но можно инициировать их загрузку при использовании следующего расширенного выражения надписи:
Правильное расширенное выражение для получения надписей на основе атрибута схемы Связанное поле (Associated Field) в режиме оценки При перерисовке/обновлении (On Refresh/Redraw).
Входные параметры:
- [ATTR_AS_LABEL]: атрибут схемы, который будет использоваться для надписывания.
- [PROPERTYSET], [DATASOURCEID], [UCID] и [UOID]: поля классов пространственных объектов схемы, которые должны быть загружены, чтобы значение связанного поля поддерживалось в актуальном состоянии.
Поля [DATASOURCEID], [UCID] и [UOID] доступны в списке полей диалоговом окне Выражение надписи (Label Expression), их можно выбирать из этого списка при построении следующего дополнительного выражения. Поскольку поле [PROPERTYSET] нельзя выбрать из этого списка, необходимо напрямую ввести его в поле выражения.
Function FindLabel([PROPERTYSET],[DATASOURCEID], [UCID], [UOID], [ATTR_AS_LABEL])
FindLabel = [ATTR_AS_LABEL]
End Function
Оценка По необходимости (As Needed)
Режим оценки По необходимости (As Needed) обычно устанавливается для атрибута схемы, который является частью другого атрибута. В этом случае его оценка выполняется во время оценки атрибута, в который он входит.