属性规则可改善地理数据库数据集的编辑体验并提高数据完整性。 这些规则均为用户定义的规则,可用于自动填充属性、在编辑操作期间限制无效编辑,以及对现有要素执行质量保证检查。
属性规则是对地理数据库中现有规则(如域和子类型)的补充。 例如,可以为编辑器提供有效值的列表,从而将域分配给属性字段以协助数据采集过程。 此外,在执行字段计算时,可使用属性规则来限制不属于该属性域的属性字段值。 将规则添加到数据集后,可以在进行编辑当时或之后对其进行评估。
以下是说明如何在地理数据库中使用属性规则的示例:
- 为了在编辑期间节省时间,系统将自动为新创建的要素填充特定属性值。 例如在创建电线杆时,系统将按顺序生成 assetID 属性。
- 为帮助维护数据完整性,可根据用户要求阻止编辑。 例如在创建或更新单相变压器时,phasescurrent 属性必须为 A、B 或 C。
- 在用户指定的时间填充现有要素的特定属性值。 例如,通过串联多个文本字段来填充现有要素的 fulladdress 字段。
- 检查现有要素以确保在完成字段编辑后可以满足用户要求。 例如我们可以评估现有要素,以确保当电线杆高于 65 英尺时,材料一定是钢。 未通过评估的要素将标记为待检查的错误要素。
注:
当创建多对多或属性关系类时,将会创建一个新的中间关系类表。 此中间关系类表不是对象类。 因此,无法将域、子类型、条件值、属性规则和默认值与此类型的表配合使用。
规则类型
创建属性规则时,必须指定要使用的规则类型。 选择的属性规则类型取决于任务以及在编辑过程中需要对规则进行哪些方面的评估。 请查看以下规则类型详细信息,以确定适合您工作流的规则类型:
属性规则视图
可以在属性规则各自的称为“属性规则”视图的表格形式视图中查看、创建和管理属性规则。 可以使用数据集的快捷菜单直接从目录或内容窗格访问“属性规则”视图。 当在地图视图中选择活动图层或使用字段或子类型视图时,要访问该视图,还可以在要素图层的数据选项卡或表的独立表选项卡中,单击数据设计组中的属性规则按钮。
有关使用此视图的详细信息,请参阅创建和管理属性规则。
使用 Arcade 创建属性规则
已为输入要素类或表创建属性规则。 要添加属性规则,数据集必须具有全局 ID,且对于企业级地理数据库,必须以数据所有者身份执行此操作。 您可以在“属性规则”视图中使用添加属性规则工具或导入属性规则工具创建规则。 规则可以针对规则定义中的特定子类型。 当您希望仅将某规则应用于数据集中的要素子集时,这将非常有用。
ArcGIS Arcade 脚本表达式可用作规则定义的一部分,用于定义要计算的内容或有效的要素配置。 Arcade 是一种可在 ArcGIS 平台上使用的便携式表达式语言。
有关创作属性规则类型的需求和全局变量,请参阅 Arcade 配置文件。 您可以将 Arcade 入门指南和函数索引用作附加资源,以构建属性规则的脚本表达式。
使用 Data Reviewer 创建属性规则
或者,使用 ArcGIS Data Reviewer 中可用的功能创建属性规则。Data Reviewer 提供了一个数据验证检查库,用于识别空间数据中发现的常见错误。 这些检查评估要素质量的不同方面,包括其属性、完整性或与其他要素的空间关系。
Data Reviewer 检查是可配置的,使您能够实现特定于组织的数据质量要求,而无需创建或维护自定义代码。
了解有关使用 Data Reviewer 管理属性规则的详细信息
注:
向数据集添加属性规则将影响向后兼容性:- 将属性规则添加到数据集后,它与 ArcMap 或 ArcGIS Pro 2.0 及更低版本不兼容。 有关客户端版本与地理数据库版本不同时提供的功能的详细信息,请参阅客户端和地理数据库的兼容性。
- 较新的 Arcade 函数将影响可使用属性规则访问数据集的 ArcGIS 客户端版本。 有关详细信息,请参阅脚本表达式中 Arcade 的兼容性。
管理属性规则
在地理数据库中的数据集上建立属性规则后,可通过多种方法查看和管理规则。 您可以使用“属性规则”视图显示属性、更改现有属性规则以及创建规则。 您也可以使用属性规则工具集中的地理处理工具管理数据集的属性规则或编写某些任务的脚本。
可以在数据集上使用 arcpy.Describe 函数以打印属性规则属性。 您还可以从使用导出属性规则工具时创建的逗号分隔值 (.csv) 文件中查看数据集上的属性规则。
逗号分隔值 (.csv) 文件。
您可以使用“属性规则”视图或禁用属性规则和启用属性规则工具暂时禁用数据集上的属性规则。 当规则处于禁用状态时,将不会执行规则以触发事件。 这可以提高批量数据加载的性能,并且在必须暂停运行规则时非常有用。
属性规则将创建为地理数据库中要素类或表的属性。 可以使用复制粘贴或者导出 XML 工作空间文档和导入 XML 工作空间文档工具,将属性规则包含在地理数据库中数据集的数据传输过程中。 数据迁移工具(如要素类至要素类和表至表)不会将属性规则与基础数据集一起传递。
要在现有数据集之间传输属性规则,请使用导出属性规则和导入属性规则工具。 导出属性规则工具使用 .csv 文件来存储属性规则的定义。
注:
在运行导入 XML 工作空间文档工具过程中,将从导出 XML 工作空间文档工具中排除序列,并且不会将引用序列的属性规则添加到目标地理数据库中的数据。
评估属性规则并管理错误要素
您可以在编辑操作期间对数据集(或在用户指定的时间对现有数据)进行属性规则评估。 根据规则类型和属性,属性规则评估将在不同时间进行:
- 实时评估
- 实时计算规则
- 约束规则
- 延迟评估
- 批处理计算规则
- 验证规则
评估批处理计算和验证规则时,将创建错误以突出显示违反属性规则的数据。 所有错误都将在错误图层中存储为错误要素。 可通过错误检查器在质量保证工作流中 检查错误要素。