创建属性规则

适用于 ArcGIS Indoors Pro 或 ArcGIS Indoors Maps 扩展模块。

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

注:

可运行升级 Indoors 数据库工具添加任何缺失的 Indoors 属性规则或使用最新版本覆盖现有规则。

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

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

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

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

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

如果在创建 Indoors 工作空间时未将属性规则添加到地理数据库,则可以稍后手动进行添加。

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

警告:

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

验证检查

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

详细信息

规则名称规则类型描述

唯一 ID

验证

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

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

细节级别信息

验证

此规则检查 Level ID 字段值是否与 Levels 要素类中某个要素的 Level ID 字段值匹配。 如果 Indoors 模型中存在级别 ID,则此规则将检查每个细节要素的 z 值是否对应其关联的级别。

更新 Level ID 字段值,以将细节要素与 Levels 要素类中存在的级别要素关联。 如果 z 值不正确,请确保细节的 z 值与关联级别要素的 z 值相匹配。

Levels

规则名称规则类型描述

唯一 ID

验证

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

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

有效设施点 ID

验证

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

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

缺失单元

验证

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

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

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

Facilities

规则名称规则类型描述

唯一 ID

验证

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

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

有效站点 ID

验证

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

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

Sites

规则名称规则类型描述

唯一 ID

验证

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

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

Units

规则名称规则类型描述

唯一 ID

验证

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

注:

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

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

单元级别信息

验证

此规则检查 Level ID 字段值是否与 Levels 要素类中某个要素的 Level ID 字段值匹配。 如果 Indoors 模型中存在级别 ID,则此规则将检查每个单元要素的 z 值是否对应其关联的级别。

更新 Level ID 字段值,以将细节要素与 Levels 要素类中现有的级别要素关联。 如果 z 值不正确,请确保细节的 z 值与关联级别要素的 z 值相匹配。

重叠几何

验证

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

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

单元包含其他单元

验证

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

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

创建验证属性规则

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

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

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

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

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

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

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

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

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

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

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

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