Skip to content

模型关联与追溯 ​

模型关联用于在功能视图、逻辑视图和物理视图的模型之间建立可跳转关系,支持跨视图和跨项目。该功能独立于 ICD,不会创建或修改端口、信号、数据包等 ICD 数据。

使用前提 ​

  • 当前选中对象必须是模型。
  • 新增或解除绑定会改变画布上的模型关联标识,因此需要先将设计图切换为可写状态并打开编辑锁。
  • 查看列表、手动刷新和点击已关联模型不要求打开编辑锁。
  • 跨项目目标仍受目标项目现有访问权限控制。能够看到关联不代表自动获得目标项目权限。

打开模型关联面板 ​

  1. 在设计图中选中一个模型。
  2. 打开右侧属性栏中的“模型关联”页签。
  3. 面板按方向展示两组数据:
    • 我绑定的模型:当前模型作为绑定发起端。
    • 绑定我的模型:当前模型作为绑定目标端。

模型名称显示为蓝色时可以点击跳转。鼠标悬停在名称上可查看项目、视图和状态,不展示模型 UUID。

画布模型关联标识与右侧关联列表

新增模型绑定 ​

打开编辑锁后,点击“新增模型绑定”。支持以下两种方式。

粘贴模型链接 ​

  1. 在目标设计图中复制模型跳转链接。
  2. 点击“粘贴”读取剪贴板,或在输入框中手动粘贴。
  3. 点击“绑定”。

模型链接格式如下:

text
/projects/{projectId}/code/{viewCode}/view/{viewId}/dataUrl/{dataUrl}/model/{modelUuid}

“粘贴”和“绑定”是两个独立操作。浏览器拒绝读取剪贴板时,可以继续使用输入框手动粘贴。

搜索目标模型 ​

可以按项目 ID、视图类型和模型名称搜索模型索引。项目 ID 留空时搜索当前用户可访问范围内的候选模型,视图类型可选择功能视图、逻辑视图或物理视图。

设计图保存后会同步更新模型索引;如果模型刚改名但候选名称尚未变化,可稍后重新搜索,或由管理员执行项目模型索引重建。

新增模型绑定弹窗

绑定规则 ​

  • 不允许模型绑定自身。
  • A→B 已存在时,不允许再次创建 B→A。
  • 同一对模型只能存在一条有效绑定。
  • 允许功能、逻辑、物理模型之间互相绑定。
  • 允许跨项目绑定,但不会绕过目标项目权限。
  • 模型绑定与 ICD 完全独立。

前端、后端和数据库会共同校验自绑定及反向重复绑定。只有接口明确返回成功时,页面才会提示“模型绑定成功”。

关联状态与画布标识 ​

绑定成功后,模型右上角出现紫色 M+数量 标识,例如 M2 表示该模型当前有 2 条关联。点击标识可打开“模型关联”页签。

  • 可用:显示蓝色模型名称和“可用”状态,可以点击跳转。
  • 模型不可用:显示红色“模型不可用”,不能跳转。

模型或视图被删除、索引未及时同步时,关联可能显示为不可用。点击“刷新”只刷新当前模型的关联列表,不会刷新整个页面。

解除绑定 ​

  • 点击关联行右侧的删除图标,可以解除单条绑定。
  • 存在不可用关联时,可使用“清理不可用”批量解除当前模型的全部不可用关联。
  • 批量清理前会显示待清理数量并要求二次确认。

解绑成功后,列表和画布 M 标识数量会同步更新;关联数量变为 0 时标识消失。

将鼠标移动到删除图标上会显示“解除绑定”提示。绑定或解绑操作只有在接口明确返回成功后才显示成功消息。

绑定成功与解除绑定入口

不可用模型显示为红色,面板顶部同时显示可批量操作的不可用数量。

不可用模型与批量清理

模型关联追溯 ​

安装“关联追溯”插件后,可以从工具栏打开模型追溯。

  1. 点击“关联追溯”。
  2. 选择“模型追溯”。
  3. 粘贴并解析起点模型链接。
  4. 选择“我绑定的模型”“绑定我的模型”中的一个或两个方向。
  5. 设置 1–20 层深度,以及是否包含跨项目模型。
  6. 选择结果布局并点击“确定”。

模型追溯设置

追溯结果支持从左到右、径向和从上到下三种布局,也可以全屏查看或导出 PNG 图片。

从左到右模型追溯结果

径向模型追溯结果

结果节点说明 ​

  • 紫色:追溯起点。
  • 绿色:可用模型,点击后可以打开模型。
  • 红色“模型不可用”:目标模型无法读取,不再继续展开。
  • 灰色“已访问”:该模型已从其他路径出现,本次只显示节点,不重复请求和展开。

“已访问”不是数据库重复绑定,也不代表模型不可用。它用于阻止 A→B→A、A→B→C→A,或多条路径汇聚到同一模型时无限展开。单次模型追溯最多展示 500 个节点,日常建议深度不超过 5 层。

异常处理 ​

  • 绑定接口不存在或返回 404:页面提示“模型绑定失败,接口不可用或请求异常”,弹窗保持打开,不会误报成功。
  • 后端返回业务错误:优先展示后端返回的错误信息,例如“不能绑定模型自身”。
  • 搜索失败:清空本次候选结果并显示错误提示。
  • 刷新失败:保留当前列表,显示加载失败提示。
  • 解绑或批量解绑部分失败:显示失败提示,并重新加载当前关联列表,以服务端实际数据为准。
  • 切换模型:自动关闭上一个模型的新增绑定弹窗,并丢弃上一个模型迟到的异步响应。