В этом шаге вы проверите некоторые из правил отношений, которые вы создали для класса отношений ParcelToBuilding.
Запустите ArcMap и откройте C:\Student\BLDG\Exercise06\TestRel.mxd.
Так как вы не создали правила между участками Single Family Residence и зданиями Commercial, база геоданных будет рассматривать такую связь как некорректную. Чтобы проверить это, вы создадите сценарий, по которому коммерческое здание попадает внутрь участка для проживания, и затем проверите объекты. Вы использовали команду Проверить объекты (Validate Features) в предыдущем упражнении, чтобы проверить интервальные домены, но ее можно использовать для различных операций.
В меню Вид (View) выберите Закладки (Bookmarks) > Buildings.
Начните сессию редактирования.
На отображении карты найдите участок Single Family Residential со зданием (подписанным
Residence) на нем и используйте инструмент Редактировать (Edit) , чтобы выбрать его.
Из меню Редактор (Editor) выберите Проверить объекты (Validate Features). Так как это жилое здание, то объект правильный.
Закройте сообщение Проверить объекты (Validate Features) и выберите снова то же жилое здание.
На панели инструментов Редактор (Editor) щелкните на кнопке Атрибуты (Attributes)
.
В диалоговом окне Атрибуты (Attributes) измените атрибут BuildingType с Residence на
Commercial.
Вопрос 1: В выпадающем списке появляются значения домена или подтипа?
Закройте диалоговое окно Атрибуты (Attributes).
Проверьте выделенное здание и прочтите сообщение Проверить объекты (Validate Features).
Щелкните OK , чтобы закрыть сообщение Проверить объекты (Validate Features).
Вы только что проверили связь между участками для проживания и коммерческими зданиями. Так как такой связи нет, ArcMap сообщил вам, что объект некорректный. Вы можете оставить объект как есть или поменять его обратно на жилой.
Щелкните на кнопке Отменить (Undo)
, чтобы восстановить значение Residence.
Далее вы проверите число связанных записей. В правилах отношений вы установили максимальное значение: два жилых здания на участке для одной семьи. Как вы могли заметить, несколько участков содержат более двух зданий.
Найдите и выберите участок и три здания внутри него, как показано на следующем рисунке.
В меню Редактор (Editor) выберите Проверить объекты (Validate Features) и прочтите сообщение Проверить объекты (Validate Features).
Сообщение ясно показывает, что есть связь между этими подтипами, но вы установили максимум два здания, а на участке три.
Возможно, это реальный случай, когда на участке более двух жилых зданий. Правила отношений помогают вам найти неправильные связи, но вы сами должны решить, что делать с этими данными. Вы можете оставить некорректную связь или сделать необходимые правки, чтобы исправить ошибку. Правила отношений не препятствуют вам создавать неправильные связи, они только находят такие связи, после того, как те были созданы.
Щелкните OK, чтобы закрыть сообщение.
Далее вы создадите некорректную связь.
На панели инструментов Редактор (Editor) для Целевой слой (Target) щелкните на выпадающем списке, раскройте Building, затем щелкните Park.
Щелкните на инструменте Скетч (Sketch)
.
Оцифруйте новую парковку на месте, показанном на следующем рисунке.
Завершите скетч двойным щелчком или нажав клавишу F2.
Вы успешно создали некорректную связь. У парковок нет связи с коммерческими участками, но вы все равно можете создать этот новый объект внутри коммерческого участка. Далее вы проверите этот новый объект.
Выберите новую парковку и коммерческий участок, внутрь которого он попадает.
В меню Редактор (Editor) щелкните на Проверить объекты (Validate Features) и прочтите полученное сообщение.
Это сообщение утверждает, что новый объект еще не является частью класса отношений ParcelToBuilding.
Щелкните OK.
Из меню Редактор (Editor) щелкните на кнопке Атрибуты (Attributes).
На отображении карты выберите снова участок, на который попадает парковка, оставляя и новое здание парковки выбранным.
Раскройте Building до ToParcel.
Примечание: Это описание обратного направления для класса отношений.
Этот объект не является адресатом, потому что у него еще нет значения внешнего ключа. Вы можете скопировать значение ключа из выбранного участка в диалоговое окно Атрибуты (Attributes).
Щелкните правой кнопкой на ToParcel и выберите Добавить выбранное (Add Selected).
Теперь новая парковка является адресатом коммерческого участка, в который она попадает.
В диалоговом окне Атрибуты (Attributes) щелкните правой кнопкой на объекте под Parcel и щелкните Снять выборку (Unselect).
Закройте диалоговое окно Атрибуты (Attributes).
В меню Редактор (Editor) выберите Проверить объекты (Validate Features).
Теперь новый объект является адресатом объекта-источника, но связь остается некорректной.
Откройте диалоговое окно Атрибуты (Attributes) еще раз (убедитесь, что выбран только объект парковки) и измените BldgType на Commercial.
Закройте диалоговое окно Атрибуты (Attributes).
Проверьте объекты еще раз. Все объекты должны быть правильными.
Закройте диалогове окно Проверить объекты (Validate Features).
В меню Редактор (Editor) выберите Завершить редактирование (Stop Editing) и щелкните Да (Yes), чтобы сохранить ваши изменения.
Закройте ArcMap, не сохраняя карту.
Заключение
В этом упражнении вы создавали и работали с правилами отношений. Они позволяют вам создавать правила, которые задают, сколько объектов определенного подтипа может быть связано с другими объектами. Когда вы создает класс отношений, вы можете создавать правила, а, создав правила, можете делать правки в ArcMap. После того, как вы сделали правки, вы можете проверить объекты на соответствие правилам, которые вы установили, чтобы найти нарушения. Эти правила помогают вам поддерживать целостность данных, и они доступны только в базе геоданных.
Ответы на Вопросы Упражнения 4B
Вопрос 1: В выпадающем списке появляются значения домена или подтипа?
Ответ: Подтипы.
Вопрос 1: В этом файле есть какая-либо информация, которую вы можете интерпретировать?
Ответ: Нет.
Вопрос 2: Основываясь на том, что вы видите в этом файле, есть ли способ, которым вы можете сделать корректные правки в нем?
Ответ: Нет.
Вопрос 3: Как вы думаете, почему были скопированы ParcelsToTracts и Tract Info, хотя они находятся не в наборе классов объектов CityData? Подсказка: Щелкните правой кнопкой на ParcelsToTracts и выберите Свойства (Properties).
Ответ: Таблица Tract Info имеет класс отношений с классом пространственных объектов Parcels, который находится внутри набора классов объектов CityData.
Вопрос 4: Почему перенос набора классов объектов SewerSystem скопировал только набор классов объектов и его содержимое?