Краткая информация
Устанавливает домен для конкретного поля класса объектов или для поля подтипа.Если подтипы не определены, домен будет присвоен указанному полю.
Использование
Управление доменами включает следующие шаги:
- Создать домен с помощью инструмента Создать домен (Create Domain).
- Добавить значения или установить диапазон значений с помощью инструмента Добавить кодированное значение к домену или инструмента Установить значение для интервального домена.
- Связать домен с классом пространственных объектов, используя этот инструмент.
Если атрибутивный домен связан с таблицей или классом пространственных объектов, в базе данных создается правило проверки атрибутов. Это правило проверки атрибутов описывает и ограничивает корректные значения для поля соответствующего типа.
Один атрибутивный домен может быть связан с несколькими полями в одной таблице, классе пространственных объектов или подтипе, а также в нескольких таблицах и классах пространственных объектов.
Для определения параметра Входная таблица (Input Table)можно использовать слои пространственных объектов или представления таблиц.
Доменами рабочих областей можно также управлять в ArcCatalog или в окне Каталога. Домены можно создать и изменить на вкладке Домены диалогового окна Свойства базы данных dialog box.
В параметре Подтип (Subtype) кнопка Добавить значение (Add Value) используется только в ModelBuilder. В ModelBuilder, если предыдущий инструмент не был запущен или не существует его производных данных, параметр Подтип может не быть заполнен значениями.Кнопка Добавить значение (Add Value) позволяет добавлять нужные значения, таким образом вы можете завершить диалог Назначить домен полю (Assign Domain To Field) и продолжить построение модели.
Синтаксис
AssignDomainToField_management (in_table, field_name, domain_name, {subtype_code})
Параметр | Объяснение | Тип данных |
in_table | Имя таблицы или класса пространственных объектов, содержащего поле, которому будет назначен домен. | Table View |
field_name | Имя поля, которому будет назначен домен. | Field |
domain_name | Имя домена базы геоданных, который будет назначен выбранному полю.Доступные домены подгружаются автоматически. | String |
subtype_code [subtype_code,...] (Дополнительный) | Код подтипа, которому будет назначен домен. | String |
Пример кода
Назначить домен полю. Пример (окно Python)
Пример скрипта Python для выполнения функции AssignDomainToField с запуском из окна Python в ArcGIS.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.AssignDomainToField_management("montgomery.gdb/Landbase/Parcels", "ZONING_S", "ZoningFields", "1: government")
AssignDomaintoField, пример 2 (автономный скрипт)
Следующий скрипт применяет функцию AssignDomainToField как часть рабочего процесса создания атрибутивного домена, назначения значений в домен и присваивания домена полю
# Name: MakeDomain.py
# Description: Create an attribute domain to constrain pipe material values
#Import system modules
import arcpy
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
arcpy.env.workspace = "C:/data"
# Set local parameters
domName = "Material4"
gdb = "montgomery.gdb"
inFeatures = "Montgomery.gdb/Water/Distribmains"
inField = "Material"
# Process: Create the coded value domain
arcpy.CreateDomain_management("montgomery.gdb", domName, "Valid pipe materials", "TEXT", "CODED")
#Store all the domain values in a dictionary with the domain code as the "key" and the
#domain description as the "value" (domDict[code])
domDict = {"CI":"Cast iron", "DI": "Ductile iron", "PVC": "PVC",
"ACP": "Asbestos concrete", "COP": "Copper"}
# Process: Add valid material types to the domain
#use a for loop to cycle through all the domain codes in the dictionary
for code in domDict:
arcpy.AddCodedValueToDomain_management(gdb, domName, code, domDict[code])
# Process: Constrain the material value of distribution mains
arcpy.AssignDomainToField_management(inFeatures, inField, domName)
except Exception as err:
print(err.args[0])
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Да
- ArcGIS Desktop Standard: Да
- ArcGIS Desktop Advanced: Да