设置起点规则参考

“设置起点”规则用于将逻辑示意图中所表示的网络元素预设为起点。

可以对“设置起点”规则进行配置,以将逻辑示意图中当前表示的网络要素或对象预设为起点。 当这些要素或对象是具有终端的交汇点时,该规则也可用于在特定终端上预设起点。

追踪规则前预设“设置起点”规则时,它会将指定起点标识为唯一的起点,而不是在其运行时运行逻辑示意图中所显示的所有网络元素。

设置起点规则过程

如果设置起点规则没有配置 SQL 表达式或交汇点终端,则指定网络源类或对象表的所有网络元素都可被视为追踪规则进程的起点。

如果同时配置了 SQL 表达式和交汇点终端,则只有从具有指定终端的指定网络源类或对象表查询到的网络元素才可被视为追踪规则进程的起点。

由于默认情况下,所有内容要素将始终存在于具有其容器的逻辑示意图中,因此您可能需要指定内容或容器要素作为起点,以防止追踪失败。

在为逻辑示意图模板配置的规则序列中,可以在追踪规则之前指定多个设置起点规则。 所有规则都会在当前在逻辑示意图中表示的网络元素中搜索其预期起点,并将检测到的这些起点合并到内部列表中。 当追踪规则开始时,该进程将考虑此内部列表中的起点,并仅从这些起点运行追踪。 如果起点列表为空,换句话说,如果逻辑示意图中没有元素符合设置起点规则条件,则将跳过追踪规则。

也可以链接追踪规则以构建逻辑示意图内容。 在这种情况下,该追踪规则在开始时将考虑由位于规则序列中第一个追踪规则之前的“设置起点”规则设置的任何起点。 这些起点将在运行规则序列中的第二个追踪规则时再次使用,除非在第一个和第二个追踪规则之间存在其他设置起点规则。 在这种情况下,将考虑该第二组“设置起点”规则来构建新的内部起点列表,以用作第二个追踪的输入。 如果在规则序列中配置了第三个追踪规则,则原理相同。

当追踪规则配置为运行最短路径追踪类型时,准确地说,将正好需要两个起点。

设置起点规则配置

要在模板上配置“设置起点”规则,请使用添加按属性设置起点规则工具。

提示:

在按属性配置逻辑示意图规则时,可以使用以下特定的 SQL 语句、根据其他逻辑示意图要素属性值,过滤掉网络源属性值上的逻辑示意图要素:WHERE 'OBJECT' = 'IN_DIAGRAM'。 例如,要查询生成的逻辑示意图中具有最小属性值的逻辑示意图要素,您可以根据以下语法使用 SQL 表达式设置任何按属性添加 <XXX> 规则工具:<attributeName> = (SELECT MIN(<attributeName>) FROM <networkClassName>) WHERE 'OBJECT' = 'IN_DIAGRAM'

假设您负责维护一个下水道网络,并且希望创建逻辑示意图,使其既能显示特定升降站上游的所有升降站,又能显示这些上游升降站的所有下游升降站。 在这种情况下,您将通过链接以下规则工具来设置逻辑示意图模板规则序列:

  • 第一个添加按属性设置起点规则工具用于将您感兴趣的升降站设置为第一个起点。
  • 第一个添加轨迹规则工具用于运行从该输入升降站开始的上游追踪。
  • 第二个添加按属性设置起点规则工具用于将上游追踪返回的所有升降站设置为新起点。
  • 第二个添加轨迹规则工具用于从每个上游升降站开始运行下游追踪。
假设您作为输入提供的用于创建逻辑示意图的升降站始终是逻辑示意图的最低升降站,并且您具有在升降站网络源类中反映高程的属性,则可以使用以下 SQL 表达式仅过滤出要视为第二个“设置起点”规则起点的上游升降站:ASSETGROUP = 301 AND ELEVATION <> (SELECT MIN(ELEVATION) FROM StructureJunction) WHERE 'OBJECT' = 'IN_DIAGRAM'

相关主题