创建属性规则

可用于具有 Indoors 扩展模块许可的 ArcGIS 组织。

构建楼层感知型地图并将其用于应用程序时,创建和维护精确的楼层平面图数据十分重要。 ArcGIS Pro 中的一种质量控制方法是在数据库中实施属性规则。 当您使用创建室内数据集创建 Indoors 数据库工具创建室内数据集时,您可以将一个属性规则集合添加到楼层平面图要素类。 将楼层平面图加载到室内数据集后,您可以运行这些验证规则以检查其中是否存在常见的关键数据问题,例如唯一 ID、楼层感知关系和空间完整性问题。

您可以在文件地理数据库中或分支版本化要素服务中对数据运行验证属性规则。 每种方法均使用略微不同的工作流。

使用创建室内数据集创建 Indoors 数据库将属性规则添加到 Indoors 工作空间时,将发生以下情况:

  • 将在 Indoors 数据集中的要素类中创建全局 ID 字段。
  • 将在室内数据集中的要素类中创建编辑者追踪字段,并且启用编辑者追踪。
  • 将在 Indoors 数据集中的要素类中创建验证字段。 此字段由“错误检查器”进行管理,将用于确定自要素最近一次更新以来是否对其运行了属性规则。
  • 四个错误数据集将作为独立图层添加到地理数据库。 这些要素类对应于点、折线、面和表错误,并且由错误检查器管理。 创建室内数据集创建 Indoors 数据库工具将创建 LEVEL_ID 字段,以使用楼层过滤器启用对数据错误的可视化。 当您将错误图层添加到地图并打开“错误检查器”时,这些图层将自动配置为楼层感知型图层。
    注:

    当第一个验证属性规则添加到地理数据库时,即会创建错误数据集。 如果数据库中已存在错误数据集或者将属性规则导入到了现有 Indoors 工作空间,则可以手动将 LEVEL_ID 字段添加到数据集。

  • 将对以下要素类应用一系列验证计算规则:Sites、Facilities、Levels、Units 和 Details。 验证规则将在您进行指定时运行,以检查数据中的问题。 其中包含的计算规则用于管理验证字段,此字段用于确定是否对要素运行验证校验。

如果首次创建 Indoors 工作空间时未添加属性规则,可以稍后通过手动方式将属性规则添加到地理数据库

您可以编辑现有属性规则或创建新规则以满足组织要求。 您可以管理规则,包括编辑 Arcade 脚本,也可以通过属性规则视图启用、禁用、删除或添加新规则。

注:

如果您更改了地理数据库中的要素类名称,则还必须编辑 Arcade 脚本中的名称。

验证校验

将在 Indoors 数据集中创建以下验证规则:

详细说明

规则名称规则类型描述

唯一 ID

验证

此规则将检查细节 ID 字段值对于细节要素是否唯一。 细节 ID 字段值不唯一的细节要素将作为错误返回。

更新每个不唯一的细节 ID,以使其在要素类中唯一。

有效级别 ID

验证

此规则检查级别 ID 字段值是否与 Levels 要素类中某个要素的级别 ID 字段值匹配。

更新级别 ID 字段值,以将细节要素与 Levels 要素类中现有的级别要素关联。

Z 值正确

验证

此规则检查每个细节要素的 z 值是否对应其关联的级别。

细节可能位于该级别上的任意位置(例如窗户可能位于地面上方 3 英尺)。 此属性规则验证每个细节要素是否存在于级别要素的 z 值加上细节要素相对高度的范围内。 如果具有并非位于地面上的细节要素,请确保已在 Details 要素类中填充 HEIGHT_RELATIVE 字段。

Levels

规则名称规则类型描述

唯一 ID

验证

此规则将检查级别 ID 字段值对于级别要素是否唯一。 级别 ID 字段值不唯一的级别要素将作为错误返回。 唯一级别 ID 对于配置楼层感知、更新工作流和维护数据而言十分重要。

更新每个不唯一的级别 ID,以使其在要素类中唯一。

有效设施点 ID

验证

此规则检查设施点 ID 字段值是否与 Facilities 要素类中某个要素的设施点 ID 字段值匹配。

更新设施点 ID 字段值以将级别与 Facilities 要素类中的现有设施点要素关联。

缺失单元

验证

此规则将检查每个级别的以下内容:

  • 该级别的各个单元之间没有超过 1 米的间隙。
  • 单元要素不能延伸至级别外部。

查看级别的单元是否存在问题,以确认是否缺少单元要素以及单元要素是否位于本不该位于的级别边界之外。

Facilities

规则名称规则类型描述

唯一 ID

验证

此规则将检查设施点 ID 字段值对于设施点要素是否唯一。 唯一设施点 ID 对于配置楼层感知、更新工作流和维护数据而言十分重要。

更新每个不唯一的设施点 ID,以使其在要素类中唯一。

有效站点 ID

验证

此规则检查站点 ID 字段值(如果不为 null)是否与 Sites 要素类中某个要素的站点 ID 字段值匹配。

更新站点 ID 字段值,以将级别与 Sites 要素类中的现有站点关联。 如果 Sites 要素类中没有站点要素,请确保 Facilities 要素类中要素的站点 ID 字段为空。

重叠几何

验证

此规则检查设施点是否不与其他设施点重叠。

更新设施点几何,以使其不重叠。

Sites

规则名称规则类型描述

唯一 ID

验证

此规则将检查站点 ID 字段值对于站点要素是否唯一。 唯一站点 ID 对于配置楼层感知、更新工作流和维护数据而言十分重要。

更新每个不唯一的站点 ID,以使其在要素类中唯一。

单元

规则名称规则类型描述

唯一 ID

验证

此规则将检查单元 ID 字段值对于单元要素是否唯一。 单元 ID 字段值不唯一的单元要素将作为错误返回。 唯一的单元 ID 对于更新楼层平面图和维护数据而言十分重要。

注:

如果任意单元 ID 不唯一,则您无法使用更新占用者要素工具导入占用者数据。

更新每个不唯一的单元 ID,以使其在要素类中唯一。

有效级别 ID

验证

此规则检查级别 ID 字段值是否与 Levels 要素类中某个要素的级别 ID 字段值匹配。

更新级别 ID 字段值,以将细节要素与 Levels 要素类中现有的级别要素关联。

Z 值正确

验证

此规则检查每个细节要素的 z 值是否对应其关联的级别。

细节可能位于该级别上的任意位置(例如窗户可能位于地面上方 3 英尺)。 此属性规则确保每个细节要素都存在于级别要素的 z 值加上级别要素相对高度的范围内。

重叠几何

验证

此规则检查单元是否不与同级别的另一个单元重叠。

更新单元几何,以使其不重叠。

单元包含其他单元

验证

此规则检查单元是否不完全包含于另一个单元。 可能包含以下情景:

  • 存在重复单元。 在这种情况下,需删除重复单元。
  • 有一个较小单元完全包含于一个较大单元。 在这种情况下,您可以使用裁剪工具将较小单元从较大单元中裁剪掉。

创建验证属性规则

要在 Indoors 工作空间中创建验证属性规则,请完成以下步骤:

  1. Indoors 中打开一个 ArcGIS Pro 工作空间。
  2. 如果 Indoors 工作空间是一个企业级地理数据库,则启用分支版本化。
    1. 目录窗格中,右键单击企业级地理数据库连接,然后单击地理数据库连接属性

      随即显示地理数据库连接属性对话框。

    2. 对于版本类型,选择分支选项。
    1. 单击确定
  3. 在选中创建属性规则参数的情况下运行创建 Indoors 数据库创建室内数据集工具。

添加属性规则后,您可以运行验证校验以识别楼层平面图数据中的错误。

将属性规则添加到现有 Indoors 工作空间。

您可以完成以下步骤,以将属性规则添加到现有室内数据集中的要素类:

  1. 为室内数据集添加全局 ID
  2. 对室内数据集启用编辑者追踪
  3. 如果 Indoors 工作空间是一个企业级地理数据库,则启用分支版本化。
    1. 目录窗格中,右键单击企业级地理数据库连接,然后单击地理数据库连接属性

      随即显示地理数据库连接属性对话框。

    2. 对于版本类型,选择分支选项。
    1. 单击确定
  4. 运行导入属性规则工具以将属性规则添加到每个要素类。

    规则在 ArcGIS Pro 安装文件的 <Installation location>\Resources\AttributeRules\Indoors\<Feature class name>.csv 中存储为 .csv 文件。

添加属性规则后,您可以运行验证校验以识别楼层平面图数据中的错误。