ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

创建属性域

  • 描述
  • 使用
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

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

使用

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

    1. 使用此工具创建属性域。
    2. 使用向属性域添加编码值工具或设置属性域范围工具,向属性域添加值或设置属性域的取值范围。
    3. 使用指定字段的属性域工具将属性域和要素类相关联。
  • 编码值属性域仅支持默认值、复制分割策略和默认值合并策略。

  • 范围属性域支持所有分割与合并策略。执行了“分割”或“合并”操作后,会根据输入要素的数值和指定的分割或合并策略来计算输出要素的属性值。

  • 还可以在 ArcCatalog 或目录窗口中管理工作空间属性域。可通过数据库属性对话框中的属性域选项卡创建和修改属性域。

语法

CreateDomain(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
arcpy.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
 
#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])

环境

  • 自动提交
  • 当前工作空间

许可信息

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

相关主题

  • 属性域工具集概述
  • 子类型快速浏览
  • 属性域快速浏览
  • 属性域的地理处理注意事项

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2019 Esri. | 隐私政策 | 法律声明