跳到主要内容

3.8 元素关系图

资产目录树表达的是元素之间的层级归属关系——集团、工厂、产线、设备、测点的层层嵌套。但在真实工业现场,元素之间还存在大量非层级的横向联系:一台清水池控制一台出水泵房、两台设备互为冗余、一套联锁保护另一套设备、一个公共测点影响多条工艺线。这些关系无法塞进树里,却恰恰是理解设备之间"谁影响谁、谁控制谁"的关键。

元素关系图(关联元素视图)就是为此而生:它以某个元素为中心,把该元素与周围元素之间的控制、联锁、冗余、故障影响、生产过程等工业语义关系,绘制成一张可交互的局部关系网络图。您可以直观地看到当前元素维护了哪些关系、又被哪些元素所关联,并沿着关系一步步向外探索。

备注

元素关系图展示的是元素与元素之间的工业语义关系,它不同于元素树中的「强引用 / 弱引用 / 组合引用」等层级归属关系。这些关系由元素属性中的「元素引用(Element)类型属性」承载,并附加了关系方向与关系类型(枚举值)来描述业务语义。关于引用关系与关系类型的背景,参见 3.5 数据关联与工业本体。

3.8.1 打开元素关系图​

  1. 在 Explorer 左侧元素树中,点击选中一个元素,主工作区打开该元素的详情视图。
  2. 在详情面板顶部的选项卡中,点击 关联元素。

页面随即以该元素为中心,加载并渲染关系图。被选中的元素称为中心元素,在图中以高亮样式显示。

信息

「关联元素」选项卡只在选中某个具体元素后出现,因此必须先选中一个元素,才能进入元素关系图页面。

3.8.2 页面布局​

元素关系图页面由三部分组成:

区域位置作用
工具栏顶部展示层级、关系类型、关系方向三个筛选器,以及编辑、保存、刷新、折叠面板等操作按钮
关系图画布中部以中心元素为核心的 G6 关系网络图,节点为元素、边为关系
右侧面板右侧展示当前选中元素的名称、路径、描述及其直接关系列表

3.8.2.1 节点与边的含义​

图中的每个节点代表一个元素,每条边代表元素之间的一条关系:

  • 中心元素:以突出颜色高亮显示,是整张图的视角中心,不可删除。
  • 一度元素:与中心元素直接相连的元素,以正常实体样式显示。
  • 二度及以上元素:通过间接关系可达的元素,以弱化样式显示,仅可查看与跳转。
  • 已删除元素:关系仍存在、但目标元素已被删除,以警告色虚线显示,名称显示为「元素已删除」。

边上的箭头方向由关系方向和关系维护者共同决定(出发、到达、双向、无方向)。详见 3.8.3.2 关系方向。

3.8.2.2 节点名称显示​

元素名称在节点圆内居中显示,最多两行,并根据名称长度自动缩小字号;名称过长时以省略号截断。完整的元素名称始终在右侧面板中展示。

3.8.3 理解关系语义​

3.8.3.1 维护者与对方​

每条关系都由两个元素共同构成:

  • 维护者(Owner):保存这条关系属性的元素,也是关系的主体。例如"清水池 CW-01"在自身属性中维护了一条指向"出水泵房"的关系属性。
  • 对方(Counterpart):关系属性指向的目标元素。
提示

「谁维护关系」与「图上箭头指向谁」是两回事。箭头方向由关系方向和关系维护者共同决定:关系方向描述「从维护者视角看关系指向何方」,维护者决定关系属性存在谁身上。详见 3.8.3.2 关系方向。

3.8.3.2 关系方向​

每条关系都有一个关系方向,决定图上箭头的指向:

方向含义图上箭头
出发(Outgoing)从维护者指向对方单箭头指向对方
到达(Incoming)从对方指向维护者单箭头指向维护者
双向(Bidirectional)双向语义两端箭头
无方向(Undirected)无明确方向无箭头
备注

关系方向是相对维护者定义的。当您以中心元素 C 查看一条关系时,如果 C 恰好是关系的对方(而非维护者),那么"出发"和"到达"在 C 的视角下会互换。例如:对方元素维护了一条方向为「到达」的关系(箭头指向维护者),从 C 的视角看,这条关系就是「出发」。方向筛选会自动做这种视角换算。

3.8.3.3 关系类型​

每条关系都属于一个关系类型(一个枚举集),并取该枚举集中的一个关系取值(枚举值)来描述具体语义。例如关系类型为「控制」,关系取值可能是「控制」「联锁」「冗余」等。关系类型与关系取值都是在枚举集中预先定义的(参见 3.4 数据标准化)。

3.8.4 查看关系图​

3.8.4.1 逐层展开​

关系图默认展示二级关系(中心元素 + 一度元素 + 二度元素)。页面通过逐层加载的方式构建图:先加载中心元素的一度关系并立即渲染,再以一度元素为边界加载第二度,逐层合并,直到达到「展示层级」设定的层数。

3.8.4.2 调整展示层级​

工具栏的 展示层级 下拉框支持一级到七级关系:

  • 选择「一级关系」:只显示中心元素及其直接相连的一度元素,二度及以上元素被隐藏。
  • 选择「二级关系」及更深层级:逐级向外扩展更多间接元素。
注意

展示层级越深,图上的节点与边越多。当关系数量超过展示上限时,页面会提示「关系数量超过展示上限,当前仅显示部分结果」,此时建议缩小层级或使用筛选缩小范围。

3.8.4.3 点击节点探索​

点击图中的任意一个未删除节点,右侧面板会切换到该节点,展示它的名称、路径、描述和直接关系列表。同时,该节点的一度关系会被增量合并进主图,让您可以沿着关系不断向外探索——但主图的中心元素始终保持不变。

信息

点击已删除节点(警告色虚线)不会发起加载请求,右侧面板会提示「关联元素已被删除」,并展示当前已知的关联边信息。

3.8.4.4 右侧面板​

右侧面板随图中节点的选择而变化,始终展示当前选中元素的信息:

  • 元素名称、路径、描述;
  • 直接关系数量统计;
  • 关系表格,列为「出发节点 / 到达节点 / 关系类型 / 关系取值 / 关系方向」。
备注

初始进入页面时,右侧面板默认展示中心元素的信息。点击其他节点后,面板切换为该节点的信息,但主图的中心元素不变。

3.8.4.5 折叠与展开面板​

点击工具栏最右侧的折叠 / 展开按钮,可以收起或展开右侧面板,为关系图画布腾出更多空间。

3.8.5 筛选关系​

工具栏提供三个筛选器,帮助您在复杂的关系图中聚焦关心的关系。筛选可组合使用。

3.8.5.1 关系类型筛选​

关系类型下拉框(多选)按关系类型过滤边。它作用于图中的所有边(包括间接边),只保留选中类型的关系,允许结果出现多个互不连通的子图。

3.8.5.2 关系方向筛选​

关系方向下拉框(多选)按方向过滤边。它仅作用于与中心元素直接相连的一度边,间接边始终保留;筛选后,与中心元素断开的孤儿节点会被自动剔除,保证结果图始终以中心元素为根连通。

备注

关系类型筛选与方向筛选的语义不同:类型筛选是全局的(作用于所有边),方向筛选只作用于直接边。这是为了让"从中心元素看出去的出发 / 到达关系"这一视角始终清晰。

3.8.5.3 编辑态下的筛选​

信息

筛选器在编辑态下会被禁用。进入编辑态前,请先通过筛选把需要维护的关系范围确定下来。

3.8.6 编辑关系​

关系图支持在编辑态下维护与中心元素直接相关的关系。编辑采用草稿 + 批量保存模式:所有操作先记录为前端草稿,点击「保存」后一次性提交。

3.8.6.1 进入与退出编辑态​

  • 点击工具栏的编辑按钮进入编辑态,此时编辑按钮切换为保存和放弃两个按钮。
  • 点击保存:把全部草稿一次性提交,成功后退出编辑态并刷新图。
  • 点击放弃:丢弃全部未保存的草稿,退出编辑态。
注意

编辑态下有未保存的草稿时,如果切换中心元素,系统会提示您保存或放弃,避免草稿丢失。

3.8.6.2 从中心元素添加关系​

  1. 进入编辑态,点击中心元素,弹出菜单。
  2. 选择添加关系,弹出「添加关系」弹窗。
  3. 第一步选择对方元素,第二步选择关系类型与关系取值。
  4. 点击确认,新关系以草稿形式加入图中(此时尚未写入后端)。
  5. 点击工具栏保存,关系属性写入中心元素,正式生效。
提示

从中心元素发起的关系,维护者是中心元素本身,对方元素可选。

3.8.6.3 从其他节点添加关系​

  1. 进入编辑态,点击一个一度元素或二度元素,弹出菜单。
  2. 选择添加关系,弹出「添加关系」弹窗。
  3. 此时对方元素锁定为中心元素,只需选择关系类型与关系取值。
  4. 点击确认并保存后,关系属性写入被点击的节点(维护者是该节点,对方是中心元素)。

3.8.6.4 拖入元素创建关系​

  1. 进入编辑态,从左侧元素树拖拽一个元素到关系图画布上。
  2. 松手后,该元素以白色虚线孤立草稿节点的形式出现在画布上(此时尚未建立任何关系,也未写入后端)。
  3. 点击该草稿节点,弹出菜单,可选择:
    • 添加关系:以草稿节点为维护者、中心元素为对方创建关系;
    • 移除对象:仅把草稿节点从画布移除(不删除真实元素)。
注意

「移除对象」只移除画布上的临时草稿节点,不会删除真实的元素资产。

备注

如果拖入的元素已经是图中的节点(或已拖入的草稿),页面会提示「该元素已在关系图中,无需重复添加」。

3.8.6.5 编辑与删除直接边​

进入编辑态后,点击一条直接边(与中心元素直接相连的边),弹出边菜单:

  • 编辑:修改该关系的目标元素或关系取值。
  • 删除:删除该关系。
备注

只有与中心元素直接相连的直接边可编辑或删除;二度及以上的间接边只读,没有编辑入口。

3.8.6.6 从右侧面板维护关系​

右侧面板的关系列表中,仅当选中中心元素 C 时,每行关系才提供编辑 / 删除菜单;选中其他节点时,列表只读,不显示操作列。

3.8.6.7 删除关系与待删除状态​

删除关系时,该边先以红色虚线保留在图上(标记为待删除),并记录一条删除命令;点击保存后,删除命令批量生效,关系被真正删除。

信息

如果删除的是尚未保存的新增关系(草稿边),保存时会直接抵消对应的新增命令,无需后端删除。

3.8.6.8 批量保存与回滚​

所有新增、修改、删除操作都合并为一次批量提交:

  • 后端在同一个元素事务内依次执行全部命令;
  • 任一命令失败,整体回滚,前端保留草稿与编辑态,不会出现"部分成功、部分失败"的中间状态。

3.8.7 关系异常处理​

当一条关系指向的元素已被删除时,这条关系会以**关系异常(dangling)**的形式保留在图中:

  • 缺失的元素以警告色虚线节点显示,名称为「元素已删除」;
  • 右侧面板会提示「关联元素已被删除,请检查维护该关系的属性」;
  • 您可以在编辑态删除这条异常关系,从而清理维护者元素中遗留的悬空属性。
备注

删除目标元素时,系统不会自动修改其他元素的属性。因此其他元素中指向该已删元素的关系属性会保留下来,成为关系异常,需要您显式清理。

3.8.8 常见问题​

问:为什么我看不到某个元素之间的关系?

答:关系图以当前选中的元素为中心,只展示与它(及其扩展层级内)相连的关系。请确认您选中的元素确实维护了关系属性、或被其他元素的关系属性所指向。另请检查「展示层级」是否设置得过小,以及筛选器是否过滤掉了目标关系。

问:为什么箭头方向和我预期的不一样?

答:箭头方向由关系方向和关系维护者共同决定——关系方向描述的是「从维护者视角看,关系指向何方」,而维护者决定了这条关系属性存在哪个元素上。两者组合,箭头在图上可能从维护者指向对方,也可能从对方指向维护者:

关系方向维护者是谁图上箭头
出发(Outgoing)当前元素当前元素 → 对方
出发(Outgoing)对方元素对方 → 当前元素
到达(Incoming)当前元素对方 → 当前元素
到达(Incoming)对方元素当前元素 → 对方
双向(Bidirectional)任意一方两端箭头
无方向(Undirected)任意一方无箭头

例如:对方元素维护了一条方向为「到达」的关系,从当前元素的视角看,箭头指向对方(即「出发」)。因此,如果箭头方向与预期不符,请同时检查该关系的方向取值和维护者。

问:为什么有些边不能编辑?

答:只有与中心元素直接相连的直接边可编辑;二度及以上的间接边只读。如果您需要编辑一条间接边,请先切换到以该边为直接边的中心元素。

问:拖入元素后为什么没有立即建立关系?

答:拖入元素只会创建一个孤立草稿节点,目的是让您先组织画布,再显式决定是否添加关系。请点击草稿节点,选择「添加关系」并保存。