Создание зависящих значений и управление ими

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

Внимание:

Создание зависящих значений для класса объектов или таблицы делает его несовместимым с 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 футов высотой.

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

ПолеЗависящие значенияЗависящие значенияЗависящие значения

Класс

1

2

3

Материал

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

Дерево

Сталь

Высота

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 значений и коды доменов для зависящих значений. Эти инструменты могут помочь с заполнением полей при работы с экспортированными файлами. Более подробную информацию о форматировании этих файлов см. в разделе Экспорт зависящих значений.