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

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

Внимание:

Создание зависящих значений для класса объектов или таблицы делает его несовместимым с 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 значений в сетке данных.
    • Переключить код/описание — переключает отображение кода домена или описания в сетке данных.
    • Сохранить - сохраняет все изменения, сделанные в виде Зависящие значения. Изменения держутся в памяти, пока вы не щелкните Сохранить.

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

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

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

Play Video

  • Продолжительность видео: 0:52
  • Это видео было создано с помощью ArcGIS Pro 3.2.
  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 для всех создаваемых зависящих значений.
  4. Примечание:
    Если у вас применен подтип, зависящие значения применяются только к указанному подтипу. Чтобы применить зависящие значения к другим подтипам, щелкните стрелку раскрывающегося списка Подтип, выберите другой подтип и повторите шаги, описанные выше.
  5. Когда закончите, нажмите Сохранить, чтобы сохранить изменения.

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

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

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

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

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

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

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

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

Копирование зависящих значений между наборами данных

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

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

Копирование и вставка

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

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

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

    Откроется вид Зависящие значения для исходного и целевого наборов данных.

  2. Из исходного набора данных выберите копируемые в целевой набор данных зависящие значения.

    Будут выбраны зависящие значения.

  3. Скопируйте выбранные зависящие значения, используя копирование из буфера обмена, клавиши быстрого доступа для копирования или копирование в контекстном меню.
  4. В целевом наборе данных выберите группу полей, содержащую соответствующие типы данных поля с соответствующими доменами, примененными к полям, и вставьте зависящие значения, используя вставку из буфера обмена, клавиши быстрого доступа для вставки или вставку из контекстного меню.
  5. Нажмите кнопку Сохранить Сохранить на вкладке Зависящие значения.

    Зависящие значения сохраняются в целевом наборе данных.

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

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

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

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

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

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

    Откроется вид Зависящие значения для набора данных.

  2. На вкладке Зависящие значения нажмите на кнопку Экспорт в группе Зависящие значения.

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

  3. Для CSV группы полей и CSV зависящих значений укажите путь и имя файла .csv или нажмите кнопку обзора, перейдите к папке, в которой будет храниться файл .csv, и задайте имя файла .csv.

    Создаются два файла .csv: один для групп полей, а другой - для зависящих значений.

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

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

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

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

    Откроется вид Зависящие значения для набора данных.

  2. На вкладке Зависящие значения нажмите на кнопку Импорт в группе Зависящие значения.

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

  3. Для CSV группы полей и CSV зависящих значений укажите путь и имя соответствующего файла .csv или нажмите кнопку обзора, перейдите к папке, в которой будет храниться файл .csv, и нажмите OK.

    Зависящие значения появятся в виде Зависящие значения.

  4. При необходимости поставьте отметку Заменить значения, чтобы заменить зависящие значения.

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

  5. Нажмите кнопку Сохранить Сохранить на вкладке Зависящие значения.

    Зависящие значения сохраняются в целевом наборе данных.