指定字段的属性域 (数据管理)
摘要
设置特定字段的属性域,也可设置子类型的属性域。如果未指定任何子类型,则仅为特定字段指定属性域。
用法
-
属性域管理涉及以下步骤:
- 使用创建属性域工具创建属性域。
- 使用 Add_Coded_Value_to_Domain 工具或设置属性域范围工具向属性域添加值或设置属性域的值范围。
- 使用该工具将属性域与要素类相关联。
-
属性域与表或要素类相关联时,会在数据库中创建属性验证规则。该属性验证规则用于说明和限制字段类型的有效值。
-
一个属性域可与同一表、要素类或子类型的多个字段相关联,也可与多个表和要素类中的多个字段相关联。
-
输入表参数接受要素图层或表视图。
-
还可以在 ArcCatalog 或目录窗口中管理工作空间属性域。可通过数据库属性对话框中的属性域选项卡创建和修改属性域。
-
子类型参数的添加值按钮仅在模型构建器中使用。在模型构建器中,如果前面的工具尚未运行或其派生数据不存在,则可能不会使用值来填充“子类型”参数。“添加值”按钮可用于添加所需值,以便您完成指定字段的属性域对话框并继续构建模型。
语法
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 函数。
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.AssignDomainToField_management("montgomery.gdb/Landbase/Parcels", "ZONING_S", "ZoningFields", "1: government")
指定字段的属性域示例 2(独立脚本)
以下脚本将 AssignDomainToField 函数用作工作流的一部分,以创建属性域、为属性域指定值并为字段指定属性域。
# Name: MakeDomain.py
# Description: Create an attribute domain to constrain pipe material values
# Author: ESRI
#Import system modules
import arcpy
from arcpy import env
try:
# Set the workspace (to avoid having to type in the full path to the data every time)
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, e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "Line %i" % tb.tb_lineno
print e.message
相关主题
许可信息
ArcGIS for Desktop Basic: 是
ArcGIS for Desktop Standard: 是
ArcGIS for Desktop Advanced: 是
5/10/2014