向属性域添加编码值 (数据管理)

摘要

向属性域的编码值列表添加值。

使用情况

  • 属性域管理涉及以下步骤:

    1. 使用创建属性域工具创建属性域。
    2. 使用此工具或设置范围属性域的值工具为属性域添加值或设置值的范围。
    3. 使用指定字段的属性域工具将属性域和要素类相关联。
  • 编码值属性域既包括存储在数据库中的实际值(例如 1 代表硬路面),也包括对编码值含义的描述(例如硬路面)。

  • 为属性指定了一组有效值的编码值属性域可应用于任何类型的属性,如文本、数值和日期等。例如,文本属性的编码值列表可能包括有效的管道材料值:CL - 铸铁管;DL - 球墨铸铁管;ACP - 石棉混凝土管;或者可能包括表示有效管径的数值:75–3/4";2–2";2–2";和 30–30"。

参数

标注说明数据类型
输入工作空间

包含要更新的属性域的地理数据库。

Workspace
域名称

向其编码值列表中添加值的属性域的名称。

String
编码值

要添加到指定属性域的编码值列表的值。

String
编码描述

对编码值含义的描述。

String

派生输出

标注说明数据类型
更新的工作空间

已更新的工作空间

工作空间

arcpy.management.AddCodedValueToDomain(in_workspace, domain_name, code, code_description)
名称说明数据类型
in_workspace

包含要更新的属性域的地理数据库。

Workspace
domain_name

向其编码值列表中添加值的属性域的名称。

String
code

要添加到指定属性域的编码值列表的值。

String
code_description

对编码值含义的描述。

String

派生输出

名称说明数据类型
out_workspace

已更新的工作空间

工作空间

代码示例

AddCodedValueToDomain 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 AddCodedValueToDomain 函数。

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.AddCodedValueToDomain_management("montgomery.gdb", "material", "1", "PVC")
AddCodedValueToDomain 示例 2(独立脚本)

此独立脚本将 AddCodedValueToDomain 函数用作工作流的一部分,以创建属性域并为其赋值。

# Name: MakeDomain.py
# Description: Create an attribute domain to constrain pipe material values
 
# Import system modules
import arcpy
 
# 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)

环境

特殊情况

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题