创建属性域 (数据管理)

许可等级:BasicStandardAdvanced

摘要

在指定工作空间中创建属性域。

用法

语法

CreateDomain_management (in_workspace, domain_name, domain_description, field_type, {domain_type}, {split_policy}, {merge_policy})
参数说明数据类型
in_workspace

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

Workspace
domain_name

要创建的属性域的名称。

String
domain_description

要创建的属性域的描述。

String
field_type

要创建的属性域的类型。属性域是描述字段类型合法值的规则。指定的字段类型应与将属性域指定到的字段的数据类型相匹配。

  • SHORT特定范围内不含小数值的数值;编码值。
  • LONG特定范围内不含小数值的数值。
  • FLOAT特定范围内含小数值的数值。
  • DOUBLE特定范围内含小数值的数值。
  • TEXT名称或其他文本特性。
  • DATE日期和/或时间。
String
domain_type
(可选)

要创建的属性域类型:

  • CODED指定一组有效的属性值。例如,编码值属性域可能指定有效的管道材料值:CL - 铸铁管、DL - 球墨铸铁管或 ACP - 石棉混凝土管。
  • RANGE指定数值属性的有效取值范围。例如,如果给水干管的压力介于 50 和 75 psi 之间,则范围属性域会指定这些最大值和最小值。
String
split_policy
(可选)

所创建属性域的分割策略。分割要素时,属性值的行为受控于它的分割策略。

  • DEFAULT两个所生成要素的属性使用给定要素类或子类型的默认属性值。
  • DUPLICATE两个所生成要素的属性使用原始对象的属性值副本。
  • GEOMETRY_RATIO两个所生成要素的属性是原始要素值的比率。该比率取决于原始几何的分割比例。如果几何被分割成相等的两部分,则每个新要素的属性值将是原始对象属性值的一半。几何比策略仅适用于范围属性域。
String
merge_policy
(可选)

所创建属性域的合并策略。在将两个要素合并为一个要素时,合并策略控制着新要素的属性值。

  • DEFAULT所生成要素的属性使用给定要素类或子类型的默认属性值。这是唯一适用于非数字字段和编码值属性域的合并策略。
  • SUM_VALUES所生成要素的属性使用原始要素属性值的总和。总和值策略仅适用于范围属性域。
  • AREA_WEIGHTED所生成要素的属性使用原始要素属性值的加权平均值。此平均值取决于原始要素的几何。加权面积策略仅适用于范围属性域。
String

代码实例

创建属性域示例(Python 窗口)

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

import arcpy from arcpy import env env.workspace = "C:/data" arcpy.CreateDomain_management("montgomery.gdb", "Materials", "Valid pipe materials", "TEXT", "CODED")
创建属性域示例 2(独立脚本)

此独立脚本将 CreateDomain 函数用作工作流的一部分,以创建属性域、为其赋值并将属性域分配给要素类的字段。

# 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