Работа с зависящими значениями

Зависящие значения, которые также называют зависящими значениями атрибутов, - это возможность дизайна объектов, позволяющая создавать значения в одном поле на основе значений в другом. Атрибутивные домены позволяют вам ограничить допустимые значения в поле списком или диапазоном значений. Зависящие значения расширяют возможности этой модели, дополнительно ограничивая ваш выбор для значения в одном поле доменными значениями, которые могут быть размещены в другом поле. Таким образом, условные значения обеспечивают целостность данных, применяя дополнительные ограничения, позволяющие уменьшить количество допустимых значений полей. Это может пригодиться для моделирования частей реального мира и объектов в вашей ГИС, особенно для инженерных компаний. Это может быть полезным для создания деревьев решений или вопросов опросов для выбора того, что задает следующий набор корректных вариантов.

Внимание:

Создание зависящих значений для класса объектов или таблицы делает его несовместимым с ArcMap и версиями, предшествующими ArcGIS Pro 2.3 и ArcGIS Enterprise 10.7.x. См. Совместимость клиентов и баз геоданных для получения более подробной информации о доступной функциональности и использовании разных версий клиентов и баз геоданных.

Примером применения зависящих значений является покупка транспортного средства.

Дерево принятия решения может выглядеть так: Выбор производителя автомобиля > Модель автомобиля > Уровень комплектации > Цвет

Дерево принятия решения при покупке автомобиля

  • С начала вы выберите производителя, к примеру, Honda.

    Выберите производителя автомобиля.
  • В зависимости от производителя будут доступны определенные модели.

    • Для Honda это могут быть Pilot, CRV, Accord и Civic.

      Выберите модель автомобиля.
    • Для Toyota доступен другой список моделей.

      При выборе других производителей будут предложены другие списки моделей.
  • Затем, основываясь на выбранной вами модели автомобиля, появятся доступные для нее комплектации.

    • Для Honda Pilot это комплектации LX, EX-L, Sport и Touring.

      Выберите комплектацию.
  • Для выбранной вами комплектации могут быть доступны разные цвета, например, красный, синий, черный и белый.

    Выберите цвет.

Каждый выбор дерева решений приводит к появлению списка опций, зависящих от вашего предыдущего выбора. При выборе других производителей будут предложены другие списки доступных моделей. Выбором модели обусловлены доступные комплектации, а для каждой комплектации могут предлагаться различные цвета автомобиля. Ваш выбор будет Honda > Pilot > EX-L > Белый или, например, Toyota > 4Runner > TRD Sport > Цвет Inferno, - в зависимости от того, что вы выбираете.

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

В качестве реального ГИС-примера приведем класс объектов StructureJunction в пакете устройств инженерной сети. Существует точечный класс объектов соединений с подтипами для таких элементов сети, как опоры, люки, платформы и т.д.

Подтип опоры с присвоенными для полей доменами

Для подтипа Опора к трем полям были применены домены. Доменами ограничиваются значения, которые можно задавать в каждом из полей, списком допустимых. Например у опоры может быть класс 1, 2 и 3; материалом может быть стекловолокно, дерево или сталь; высота бывает равной 30, 35, 40, 45 футам и так далее.

Для дальнейшего ограничения допустимых значений в этих полях можно воспользоваться зависящими значениями. Например, с помощью зависящих значений можно задать, что опора класса 1 может быть сделана только из стекловолокна и быть 30, 35, 40 или 45 футов высотой.

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

FieldЗависящие значенияЗависящие значенияЗависящие значения

Class

1

2

3

Material

Стекловолокно

Дерево

Сталь

Height

30, 35, 40, 45

30, 35, 40, 45

50, 55, 60, 65

После создания этих зависящих значений, если вы разместите новый объект опоры или измените существующий элемент и назначите его в качестве опоры класса 1, набор значений, который вы можете поместить в поле Материал, будет ограничен стекловолокном. Точно так же список допустимых для стекловолоконной опоры класса 1 - 30, 35, 40, и 45.

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

Подготовка данных для зависящих значений

Зависящие значения созданы для набора полей таблицы или класса объектов. Перед созданием зависящих значений для этих полей нужно настроить подходящие домены со списком или диапазоном допустимых значений.

Для приведенного выше примера с опорами зависящими значениями является группа из трех полей: Класс, Материал и Высота. Каждому полю присвоен подходящий домен Например, для поля Материал есть домен со значениями Стекловолокно, Дерево и Сталь. После правильного задания вами доменных значений, присвоения доменов соответствующим полям и определения группы полей для зависящих значений вам нужно создать зависимости между доменными значениями.

Чтобы создать для класса объектов или таблицы зависящие значения, вам нужно сделать следующее:

  • Создайте домены со списком или диапазоном допустимых значений.
  • Присвойте эти домены соответствующим полям класса объектов или таблицы.
  • Откройте вид Зависящие значения для класса объектов или таблицы.
  • Создайте группу полей, содержащую поля, в которых будут зависящие значения.
  • Создайте зависящие значения для всех полей этой группы.

Открытие вида Зависящие значения

В виде Зависящие значения вы можете создавать зависящие значения и управлять ими.

Чтобы открыть вид Зависящие значения, нужно выполнить следующее:

  • Щелкните правой кнопкой таблицу или класс объектов на панели Каталог, выберите Дизайни щелкните Зависящие значения.
  • Щелкните правой кнопкой таблицу или класс объектов на панели Содержание, выберите Дизайни щелкните Зависящие значения.
  • Выберите таблицу или слой на панели Содержание, щелкните кнопку Зависящие значения на ленте Данные либо контекстной вкладки Векторный слой, либо контекстной вкладки Автономная таблица. Вид переключится на представление Зависящие значения.
  • Щелкните в виде Поля кнопку Зависящие значения на ленте Поля. Вид переключится на Зависящие значения.
  • Щелкните в виде Подтипы кнопку Зависящие значения на ленте Подтипы. Вид переключится на Зависящие значения.
Примечание:

Если вы открыли вид Зависящие значения для таблицы или класса объектов в первый раз, и зависящие значения еще не заданы, то сначала вам будет предложено создать группу полей.

Лента Зависящие значения

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

Вкладка Зависящие значения

Лента Зависящие значения содержит следующие группы:

  • Буфер обмена – обеспечивает стандартные возможности буфера обмена для Вставки, Копирования, Вырезания и Удаления.
  • Дизайн содержит кнопки для того, чтобы открыть виды других дизайнов данных, включая следующие:
    • Поля
    • Подтипы
    • Домены
    • Правила атрибутов
    • Группы полей содержит кнопку, которая открывает диалоговое окно Группы полей.
  • Зависящие значения содержит кнопки для создания и управления зависящими значениями, включая следующие:
    • Новая - если в виде есть активная группа полей, будет добавлена строка. Позволяющая создать зависящие значения для полей этой группы.
    • Импорт – импортирует группы полей и зависящие значения из файлов значений с разделителями-запятыми (.csv).
    • Экспорт – экспортирует группы полей и зависящие значения в файл с разделителями-запятыми (.csv).
    • Получить значение – дает возможность пометить строку, как устаревшее зависящее значение. Устаревшие значения по-прежнему видны в других местах пользовательского интерфейса, например, в значении поля на панели атрибутов, но выбрать их нельзя.
    • Переключить ID значений - для каждой строки вида есть значение внутреннего ID значения. Щелчок позволяет переключить видимость в таблице данных.
    • Переключить код/описание - щелчком можно задать, будет ли значение в поле таблицы данных отображать код домена или его описание.
    • Сохранить - все изменения в виде Зависящие значения сохраняются в памяти, пока вы не щелкните Сохранить.

Создание группы полей

Перед созданием зависящих значений в полях класс объектов или таблицы нужно создать группу полей. Группа полей - это именованный набор полей таблицы или класса объектов. В случае с приведенном выше примером с опорами есть группа полей, состоящая из класса опоры, ее материала и высоты. После создания группы полей можно начать задавать зависимости значений в полях группы.

Для того чтобы создать группу, сделайте следующее:

  1. Нажмите кнопку Группы полей на ленте Зависимые значения.

    Откроется диалоговое окно Группы полей.

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

    Будет создана новая группа полей Field_Group. Эту группу полей можно переименовать.

  3. Щёлкните ниспадающее меню Добавить поля.

    В нем перечислены все поля класса объектов или таблицы.

  4. Выберите поля, которые будут входить в группу, и щелкните кнопку Добавить.
    • Воспользуйтесь текстовым окном Поиск вверху списка, чтобы найти определенное поле.
    • Чтобы добавить все поля в группу, щелкните Выбрать все и нажмите Добавить.
  5. Укажите, будет ли группа полей ограничивающей, выбрав опцию для отметки Ограничивающий.
    • Если оставить этот флажок, это создаст ограничительную группу полей, а значения, введенные в поле в группе полей, будут ограничены значениями, указанными в качестве зависящих значений. Группы полей являются по умолчанию ограничивающими, это позволяет управлять опциями редактирования при использовании зависящих значений.
    • Чтобы отключить настройку ограничения, снимите отметку с опции Ограничивающий. Без отметки созданная группа полей не будет ограничивающей, что позволяет зафиксировать значения в группе полей, даже если они не указаны в качестве зависящих значений.
  6. Щелкните ОК, чтобы создать группу.

Подсказка:
Можно воспользоваться следующими комбинациями клавиш для навигации в диалоговом окне Группа полей:
  • Ctrl+N – создает новую группу полей.
  • Alt+G – помещает курсор в таблицу данных Группа полей вверху диалогового окна.
  • Alt+A – помещает курсор в ниспадающее меню Добавить поля.
  • Alt+F – помещает курсор в таблицу данных Поля внизу диалогового окна.

Создание зависящих значений

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

Если у таблицы, с которой вы работаете в виде Зависящие значения, есть несколько связанных с ней групп полей, между ними можно переключаться, щелкнув меню Группа полей и выбрав другую группу полей.

Если в таблице или классе объектов, с которыми вы работаете в виде Зависящие значения, есть подтипы, между ними можно переключаться в ниспадающем меню Подтипы. Это позволит вам настраивать зависящие значения по-разному для полей каждого подтипа. Убедитесь, что все домены применены к полям на уровне подтипа в виде Подтипы перед тем, как начинать.

  1. Чтобы создать в группе полей зависящие значения, щелкните кнопку ленты Новое либо пустую строку Щелкните, чтобы добавить зависящие значения.
  2. Выберите для каждого поля группы значение поля из списка.

    Значения <ЛЮБОЕ> или <NULL> также можно выбрать в ниспадающем меню, чтобы добавить их в качестве зависящих. <ЛЮБОЕ> доступно всегда - даже если к полю, к которому вы добавляете зависящее значение, не применен домен, а <NULL> доступен, если для поля допустимы значения null.

    • <ЛЮБОЕ> - добавление зависящего значения <ЛЮБОЕ> означает, что допустимо любое значение поля.
    • <NULL> - добавление зависящего значения <NULL>означает, что значение поля, равное null, считается допустимым.

  3. Повторите шаги 1 и 2 для каждой зависимости, которую вы желаете создать. Когда закончите, нажмите Сохранить, чтобы сохранить изменения.

Примечание:
Если в активной карте есть не сохраненные изменения, кнопка Сохранить будет отключена и появится предупреждающий вас информационный баннер. Чтобы снова включить кнопку Сохранить, вам сначала нужно сохранить или отменить правки, которые вы внесли.

Для примера с опорами в группе полей Poles Contingency будет следующий набор зависящих значений:

Зависящие значения для примера с опорами

После того как вы создали зависящие значения для ваших данных, созданные вами ограничения будут соблюдаться в приложении при размещении значения в поле - на панели Атрибут или в виде Таблица атрибутов.

Подробнее о редактировании полей с зависящими значениями.

Устранение выбранного зависящего значения

В некоторых случаях вам может понадобиться устранить зависящее значение. Когда зависящее значение устраняется, оно все еще отображается в списке допустимых значений поля, например, на панели Атрибуты, но оно будет отключено и вы не сможете выбрать его в качестве значения поля. Например, если ваша организация больше не планирует использовать асбест в качестве строительного материала, но есть ряд мест, где асбест использовался в на имеющихся объектах. Это означает, что это все еще допустимое значение, которое может уже содержаться в поле строительного материала для некоторых объектов, но впредь вы не будете его использовать. Чтобы для других полей значение больше не использовалось, его нужно устранить.

Для устранения зависящего значения выберите соответствующую строку и щелкните кнопку Устранить значение ленты

Если значение вдруг снова станет допустимым, его можно вернуть в зависящие, выбрав строку и нажав на кнопку Устранить значение.

Экспорт и импорт зависящих значений

Экспорт и импорт могут быть полезными для совместного использования зависящих значений и групп полей для любой данной таблицы или класса пространственных объектов или для внесения изменений в рабочую базу данных без ее широкой блокировки для редактирования схемы.

Вы можете использовать инструмент Экспорт на ленте Зависящие значения или инструмент геообработки Экспорт зависящих значений, чтобы экспортировать группы полей и зависящие значения в файлы с разделителями-запятыми (.csv). Файлы .csv затем можно открыть в приложении редактирования, например, в Excel, чтобы просмотреть или внести изменения.

Аналогично вы можете использовать инструмент Импорт на ленте Зависящие значения или инструмент геообработки Импорт зависящих значений, чтобы импортировать группы полей и зависящие значения в файлы с разделителями-запятыми (.csv). Это даст вам возможность переопределить или объединить любые изменения с существующими зависящими значениями в выбранной таблице или классе объектов. После выполнения импорта вы можете просмотреть любые изменения в виде Зависящие значения и сохранить их, когда вы завершите обновления.

Процессы экспорта и импорта работают с двумя файлами .csv, один из которых предназначен для групп полей, содержащих информацию об участвующих полях, а второй – для зависящих значений, в нем указаны различные метаданные, в том числе тип, значение и описание заданных значений. Вы можете воспользоваться кнопками Переключить ID значений и Переключить Код/Описание на ленте Зависящие значения, чтобы показать ID значения и коды доменов для зависящих значений. Эти инструменты могут помочь с заполнением полей при работы с экспортированными файлами. Более подробную информацию о форматировании этих файлов см. в разделе Экспорт зависящих значений.