逻辑示意图规则是在网络逻辑示意图生成和更新期间运行的特定任务,可用于放弃某些网络要素、添加额外要素或对象和简化示意图内容。 逻辑示意图规则也用于在生成的逻辑示意图中配置特定的标记。
概览
这些规则可以用于执行以下操作(取决于规则):
- 修改示意图内容;也就是说,通过执行以下操作优化图表本身:
- 放弃某些网络元素(移除要素规则)
- 添加额外要素或对象(添加连通性关联、添加结构附件、追踪、空间查询和展开容器规则)
- 通过聚合网络元素简化图表内容(减少交汇点,减少边缘并折叠容器规则)
- 设置逻辑示意图(设置根交汇点和设置起点规则)中包含的要素上的特定标记。
- 控制其他规则的进程,尤其是对特定规则(开始迭代和停止迭代)序列进行迭代。
在逻辑示意图所基于的模板上对示意图规则进行配置后,将在生成和更新逻辑示意图时运行这些规则。
从输入的网络要素或对象开始,构建过程首先构建生成逻辑示意图所需的逻辑示意图要素 - 它为输入的每个网络元素构建一个逻辑示意图要素。 然后,在模板上配置规则时,这些规则将在这些初始逻辑示意图要素上运行以自动简化示意图内容(例如减少规则)或在逻辑示意图中创建新的逻辑示意图要素(例如追踪规则)。
可以在模板上配置几条规则;这些规则通常是按照条目顺序链接的:规则 1 在基本构建阶段结束时构建的逻辑示意图要素上运行;规则 N 在规则 (N-1) 进程生成的要素上运行。
注:
唯一的例外是“添加结构附件”规则。 无论设置在规则序列中什么位置,此规则均由系统运行。
图表修改规则
以下几节中介绍的规则全部用于修改逻辑示意图。
移除要素
“移除要素”规则用于移除逻辑示意图中所表示的特定网络要素或网络对象。 此规则可按源类或对象表移除这些网络元素,也可基于连通性约束或要素属性对要素进行过滤。
自动放弃可能存在于逻辑示意图构建期间设置的输入网络元素中的网络要素或网络对象会很有帮助。 例如,若生成的逻辑示意图代表在网络地图中选择的某一网络的配电部分,则可以使用基于移除要素规则配置的逻辑示意图模板来自动放弃输入网络元素中除配电线以外的所有网络要素或网络对象。
追踪
“追踪”规则可用于追踪当前逻辑示意图中所表示的公共设施网络或追踪网络元素。
运行追踪的起点取决于追踪类型:
- 对于“已连接”、“子网”、“上游”和“下游”追踪类型,除非先在逻辑示意图模板上配置设置起点规则来明确标识特定起点,否则会将追踪规则开始时逻辑示意图中所表示的所有公共设施网络或追踪网络元素均视为追踪的起点。
- 对于最短路径追踪类型,可以在逻辑示意图模板上配置设置起点规则,以在逻辑示意图中当前所表示的所有追踪网络元素中标识出要在其间查找最短路径的两个起点。
通常,会在逻辑示意图模板上配置跟踪规则,以在构建逻辑示意图过程中在第一个规则之间运行。 常见的工作流是使用“设置起点”规则在所有潜在输入公共设施网络或追踪网络元素之间预设起点,以便追踪仅从这些起点运行。
当基于追踪规则配置模板时,追踪将在每次更新逻辑示意图时在公共设施网络或追踪网络上系统地重新运行。 这表示任何基于该模板的逻辑示意图在更新时都将始终反应当前的网络追踪结果。
展开容器
“展开容器”规则可用于展开逻辑示意图,方法是添加符合以下要求的内容要素或对象:
- 它们包含在逻辑示意图输入的一个容器中。
- 它们同逻辑示意图输入中的内容共享同一容器。
“展开容器”规则可按源类或对象表展开容器,也可基于容器属性对容器进行过滤。
添加连通性关联
“添加连通性关联”规则用于向逻辑示意图中添加显式边来表示逻辑示意图中当前表示的“自”和“至”交汇点的连通性关联。
默认情况下,不会在网络地图中绘制连通性关联。 您可通过添加连通关联规则来生成逻辑示意图,其中,在规则运行期间,每当逻辑示意图中包含相关的起始和结束交汇点时,这些连通关联就会被系统地绘制出来。 它们在其所连接的起始和结束逻辑示意图交汇点之间以直逻辑示意图边显示。
添加结构附件
“添加结构附件”规则用于向逻辑示意图中添加显式边来表示逻辑示意图中当前表示的附加网络元素和结构元素的结构附件关联。
默认情况下,不会在网络地图中绘制结构附件关联。 您可通过添加结构附件规则来生成逻辑示意图,其中,在规则运行期间,每当逻辑示意图中包含附加网络元素和结构元素时,这些结构附件关联就会被系统地绘制出来。 它们在相关附加和结构逻辑示意图要素之间以直逻辑示意图边显示。
空间查询
“空间查询”规则用于根据其相对于当前逻辑示意图中存在的网络要素的位置来检测新的网络要素,并将新检测到的要素附加到网络逻辑示意图。
空间查询规则根据其相对于属于另一个网络类的网络要素的位置来附加属于该网络类的要素。 或者,可以基于 SQL 表达式对现有要素和附加要素进行过滤。
折叠容器
折叠容器规则可用于简化逻辑示意图,方法是折叠逻辑示意图中可能存在的所有与容器相关的内容。
“折叠容器”规则可按源类或对象表折叠容器,也可基于容器属性对容器进行过滤。
减少交汇点
“减少交汇点”规则用于在保留拓扑的同时简化逻辑示意图。
“减少交汇点”规则可基于交汇点所连接的交汇点数量来减少属于网络交汇点类或对象表的交汇点。 也可在减少交汇点之前,基于相邻边上的特定属性值或属性对交汇点进行过滤。
减少边缘
“减少边”规则用于在保留拓扑的同时简化逻辑示意图,方法是将各个预期的网络线要素或边对象及其所有的连接点合并为逻辑示意图交汇点。 此类交汇点称为缩减交汇点。
所生成逻辑示意图中的任何缩减交汇点将汇集一个网络线要素及其所有的连接点;也就是说,缩减交汇点无法汇集若干个网络线要素或边对象。
设置逻辑示意图要素规则上的标记、功能或起点
以下几节介绍的规则用于设置某些逻辑示意图要素,以便之后其他逻辑示意图规则或布局可将其考虑在内。
设置根交汇点
“设置根交汇点”规则用于将基于网络交汇点类或对象表的交汇点指定为逻辑示意图根交汇点,方法是基于其属性(如果有)来过滤这些交汇点。
由于根交汇点属于特定交汇点,对网络逻辑示意图运行树布局时,树布局需基于此类交汇点运行,因此通常会针对模板配置此规则,这些模板经设置后可在生成逻辑示意图时自动运行树布局。
设置起点
“设置起点”规则用于将逻辑示意图中所表示的网络元素预设为起点。
在追踪规则前预设“设置起点”规则时,它会将指定起点标识为唯一的起点,而不是在其运行时运行逻辑示意图中所显示的所有网络元素。
添加逻辑示意图要素功能
添加逻辑示意图要素规则用于在运行时为当前表示的某些逻辑示意图要素分配特定功能。
对于配置为在规则序列中稍后执行操作的某些其他规则,可以考虑此功能。
规则排序
每次生成或更新基于某个模板的逻辑示意图时,都将在要运行的示意图模板上配置逻辑示意图规则。
在示意图模板上配置规则序列时,其运行必须遵循特定的属性和原则:
- 每项规则过程是迭代的。
- 规则序列的结果取决于该序列中每个规则的位置。
- 默认情况下,规则序列是不迭代的。
每项规则过程是迭代的。
每项规则作为迭代内存中进程单独运行。
例如,当配置减少交汇点规则以减少连接单个交汇点的特定网络交汇点时,减少连接规则将运行一次以减少图表中的所有预期交汇点。 然后,该规则将再次运行,以减少在规则第一次迭代之后连接到单个交汇点的新交汇点,如此循环往复,直到图表中不再存在这样的交汇点。
以同样的方式,当配置展开容器规则以在容器间系统地展开特定网络交汇点时,展开容器规则将运行一次以展开逻辑示意图中的所有预期交汇点。 然后,该规则将再次运行,以展开在规则第一次迭代之后可能添加到逻辑示意图的新容器,如此循环往复,直到图表中不再存在这样的容器。
规则序列的运行结果取决于该序列中每个规则的位置
处理规则序列不是可交换操作。 也就是说,规则 #1 在最初以网络元素集作为输入构建的逻辑示意图要素上运行;规则 #N 在运行规则 #(N-1) 而生成的逻辑示意图要素上运行,因此当前已链接规则的条目序列顺序是决定性的并将确定逻辑示意图的最终内容。
- 当在逻辑示意图构建规则阶段有不同类型的规则链接时就是如此:即在此阶段组合减少交汇点规则、移除要素规则、展开容器规则、折叠容器规则、添加连通性关联规则和追踪规则。
例如,先运行减少交汇点规则,再运行展开容器规则(规则配置 1)与先运行展开容器规则,再运行减少交汇点规则(规则配置 2)所获得的结果不同。
- 在逻辑示意图构建规则阶段链接相同规则类型的多个规则时也是如此。
例如,运行减少交汇点规则以减少连接到单个交汇点的蓝色交汇点,然后再次运行减少交汇点规则以减少连接到单个交汇点的绿色交汇点(规则配置 #3),与先减少绿色交汇点再减少蓝色交汇点(规则配置 #4)所获得的结果不同。
默认情况下,规则序列是不迭代的。
默认情况下,规则序列是不迭代的。 每个规则过程是单独迭代的,但是默认情况下,规则序列不会被迭代。
例如,上图 B1 和 B2 显示配置 3 和 4 规则序列运行一次后的示例逻辑示意图。 对于这些特定示例,将每个规则序列运行两次将产生相同的结果,即两个逻辑示意图中所有连接到单个交汇点的绿色和蓝色交汇点将完全减去。
当您需要为连接一个其他交汇点的交汇点配置多个减少交汇点规则,从而在其运行期间更改连接剩余目标交汇点的交汇点数量时,进行规则序列迭代需要两条特定规则:开始迭代和停止迭代。
- 开始迭代规则用于通知示意图构建器过程将在其上迭代或循环的规则序列起点。
- 停止迭代规则用于通知示意图构建器过程必须在其上迭代或循环的规则序列终点。
当配置链接多个减少交汇点规则的规则序列时,这两个特定规则非常有效。 由于连接一个其他交汇点的减少交汇点规则改变了剩余交汇点的连接数量,那些剩余的交汇点可能成为先前运行的减少规则的新候选项。 由于开始和停止规则,构建过程会对所识别的序列进行迭代,直到不再有可以减少的交汇点。
要在模板上添加开始迭代规则和停止迭代规则,请使用添加开始迭代规则和添加停止迭代规则工具。
警告:
减少连接三个或多个其他交汇点的交汇点非常耗时,所以并且必须在所有其他减少交汇点规则完成后再进行处理。 要优化逻辑示意图的生成和更新性能,请避免将用于处理最多连接两个其他交汇点以及最少连接三个其他交汇点的交汇点的交汇点减少规则混合在同一迭代序列中。 建议的工作流如下所示:
- 配置减少规则的第一个迭代序列以处理最多连接两个其他交汇点的交汇点。
- 配置减少规则的第二个迭代序列以处理最少连接三个其他交汇点的交汇点。
规则进程的建议和警告
配置逻辑示意图规则时,应谨记以下信息:
- “移除要素”规则 - 该规则需使用添加移除要素规则或添加按属性移除要素规则工具进行配置,可在规则序列的第一个位置处运行,以系统放弃优化逻辑示意图之前逻辑示意图中的特定网络要素或网络对象。
例如,使用排除源类规则进程运行添加移除要素规则工具,以放弃与所有网络源类和对象表相关的所有网络要素或网络对象,某些特定网络源类或对象表除外。 另外,由于图表完整性始终在网络逻辑示意图中维护,运行 Source Type = EDGES 时不包括特定的线路类(例如传输线路)可能有助于确保您的逻辑示意图构建在网络的指定部分;即此例中的传输网络。
- “空间查询”规则 - 该规则需使用添加空间查询规则工具进行添加,并可以随时在规则序列中进行设置,但是在规则序列的开头可能更有用,可以用于包含所有感兴趣的要素。
- “追踪”规则 - 该规则需使用添加追踪规则工具进行添加,如果要配置模板以根据追踪生成逻辑示意图,则“追踪”规则通常是您在规则序列中设置的第一批规则之一。 在本案例中,您还可以在模板上配置“设置起点”规则,将特定要素或交汇点终端设置为“追踪”规则运行的起点。 必须使用添加按属性设置起点规则工具在逻辑示意图模板规则序列中追踪规则之前设置起点规则。
- “展开容器”规则 - 此规则需使用添加展开容器规则或添加按属性展开容器规则工具进行配置,用于在逻辑示意图中展开容器。 通常在任何简化逻辑示意图的规则之前进行设置。
- “添加连通性关联”规则 - 此规则需使用添加连通性关联规则工具进行配置,设置此规则可以在逻辑示意图中表示连通性关联,并可以在折叠或减少要素之前确保图表完整性。
警告:
避免在不必要的时候配置此规则,因为会浪费大量时间。 例如,添加连通性关联与配置运行追踪规则的模板无关,因为连通性关联已由追踪系统地返回。
- “添加逻辑示意图要素功能”规则 - 使用添加按属性逻辑示意图要素功能规则工具添加,可以设置“添加逻辑示意图要素功能”规则来精确管理容器的折叠或交汇点的缩减。 可使用这些规则以防止在逻辑示意图构建的全过程或部分过程中,特定容器被折叠或特定交汇点被缩减。
- “折叠容器”规则 - 此规则在运行添加折叠容器规则或添加按属性折叠容器规则工具时设置,用于在逻辑示意图中折叠容器。 如果要追踪与已折叠容器相关的所有内容,则必须在“展开容器”规则之后执行该规则。
- “开始迭代”规则 - 使用添加开始迭代规则工具进行配置,必须将“开始迭代”规则放置在“缩减交汇点”规则迭代序列的开头。 其强制构建逻辑示意图过程在“缩减交汇点”规则序列上循环,直到逻辑示意图中存在被该序列中的规则之一缩减的交汇点。
- “缩减交汇点”规则 - 此规则在运行添加缩减交汇点规则和添加按属性缩减交汇点规则工具时添加,用于简化逻辑示意图。
警告:
在配置过程中,请勿将处理最多连接两个其他交汇点的交汇点的“缩减交汇点”规则与同一缩减规则迭代序列中处理至少连接三个其他交汇点的交汇点的“缩减交汇点”规则一起使用。 否则,生成逻辑示意图时会降低性能。 要缩减连接最少三个其他交汇点的交汇点,设置两个迭代序列 - 第一个用于处理最多连接两个其他交汇点的交汇点的缩减,第二个用于处理连接至少三个其他交汇点的交汇点的缩减。
提示:
由于内容交汇点无法聚合非内容元素,且非内容交汇点也无法聚合内容元素,您可以在缩减交汇点之前配置“移除要素”规则,以移除逻辑示意图中的所有面容器和所有内容-容器关系,并强制缩减。
- “停止迭代”规则 - 此规则使用添加停止迭代规则工具进行配置,必须放置在“缩减交汇点”规则迭代序列的结尾处;也就是说,在您希望构建迭代过程的序列中的最后一个“缩减交汇点”规则之后。
- 缩减边规则 - 使用添加按属性缩减边规则工具进行设置,“缩减边”规则用于缩减边。
- “结构附件”规则 - 使用添加结构附件规则工具配置,无论将“结构附件”规则设置在规则序列中的哪个位置,都将系统性地最后运行这些规则。
警告:
避免在不必要的时候配置此规则,因为会浪费大量时间。 例如,添加结构附件与配置运行以下规则的模板无关:
- 不包含结构的“追踪”规则
- “移除要素”规则,可设置此规则以处理支持附件的结构交汇点
注:
也可以在以下特定情况下设置“移除要素”规则:
- 在用于移除逻辑示意图中的容器关系的“追踪规则”或“展开容器”规则之后。 这简化了逻辑示意图。
- 在规则序列结束时清理逻辑示意图或简化逻辑示意图,例如,系统地移除线性容器边,因为在逻辑示意图中同时表示网络线性容器及其相关内容可能会造成混淆或导致无关内容过多。
下图说明了根据上述建议,规则序列中每个规则的推荐位置:
注:
切记,所有规则都是可选规则,并且针对逻辑示意图模板配置的大多数常规规则序列适用于上文详述的不同序列部分。