4. 工程模型主数据建模方法与元数据管理

工程模型主数据是数字线程中“被反复引用、必须唯一可信”的那一层数据:零件号、装配关系、版本、材料、接口定义、坐标系、设计参数等。它们不是某一次仿真的输入文件,而是贯穿设计、工艺、制造、试验与运维的公共语义底座。本节围绕主数据建模方法论、实体关系与版本管理、元数据采集与血缘、元模型设计与扩展,以及基于元数据的检索与影响分析,给出一条可落地的实现路径。

一、主数据建模方法论:先定语义,再定结构

工程模型主数据建模建议采用“概念—逻辑—物理”三层推进。概念层只回答“有哪些业务对象、它们之间是什么关系”,例如产品、零部件、装配体、版本、文档、接口;逻辑层确定标识、属性、约束与关系基数,例如零件与版本是 1:N,装配关系是带数量的有向引用;物理层再映射到具体存储,如关系库表、图数据库节点或 PLM 对象类型。

建模时优先确定三类要素:唯一标识(如 PartID、VersionID)、业务键(如零件号+版本号)、生命周期状态(设计中、已发布、已冻结、已废弃)。标识一旦发布不可复用,状态迁移必须留痕。示例参数可设为:零件号 PN-2024-001,版本 A/B/C,状态由“设计中”经评审后置为“已发布”,发布后属性进入只读约束。

二、实体关系建模与版本管理

工程主数据的实体关系通常包含:产品—装配体—零件—版本—文档—接口。装配关系不是简单父子,而是带“数量、位号、装配基准、坐标系”的引用边。版本管理推荐“线性版本 + 分支”的混合策略:主线版本 A→B→C 表示正式迭代,分支用于并行改型;版本之间通过 derived_from 记录派生来源,通过 supersedes 记录替代关系。

下面这张图给出本节的核心结构:左侧是主数据实体与版本链,中间是元数据采集与血缘,右侧是元模型扩展与检索影响分析,三者通过统一标识贯通。

主数据实体与版本链 产品 Product 装配体 Asm 1:N 零件 Part 文档 Doc 1:N 版本链(线性+分支) A B C B-改型 derived_from / supersedes 留痕 状态机 设计中 → 已发布 → 已冻结 已发布后属性只读,变更走新版本 废弃版本保留引用,不物理删除 元数据采集与血缘 采集源:PLM / CAD / 仿真 / 工艺 技术元数据:表、字段、类型、主键 业务元数据:零件号、版本、状态 操作元数据:谁、何时、改了什么 血缘链示例 PN-2024-001 / B → 装配体 ASM-07(位号 3) → 仿真工况 LC-02 → 工艺路线 RT-11 上游变更可向下游逐级追溯 元模型扩展与影响分析 元模型:Entity / Relation / Attribute 可扩展:自定义属性、约束、标签 扩展示例:材料牌号、热处理状态 作为 Part 的可选属性集挂载 检索:按属性/关系/状态组合查询 如“已发布 + 材料=钛合金” 影响分析:沿血缘反向遍历 找出受变更影响的装配/仿真/工艺 影响分析输出示例 变更 PN-2024-001 B→C 命中:ASM-07、LC-02、RT-11 风险等级:中(3 个下游对象) 需评审后再发布新版本 标识 元数据

三、元数据采集、存储与血缘分析

元数据采集分三类:技术元数据(表、字段、类型、主键、索引)、业务元数据(零件号、版本、状态、材料)、操作元数据(创建人、时间、变更前后值)。采集方式可采用“定时抽取 + 事件触发”组合:PLM 发布事件触发实时写入,CAD/仿真文件通过解析器批量抽取。存储建议采用“关系库存主数据 + 图库存血缘”的双存储:关系库保证事务与约束,图库用节点和边表达 Part→Asm→Simulation→Process 的追溯路径。

血缘分析的关键是边方向定义。本文统一约定:边由上游指向下游,即“被引用者 → 引用者”。例如零件 B 被装配体 ASM-07 引用,则边为 Part(B) → Asm(ASM-07)。当零件发生变更时,影响分析沿边正向遍历,得到所有下游对象;反向遍历则用于回答“这个装配体依赖哪些零件”。方向一旦定义,全文与图示必须一致。

四、元模型设计与扩展

元模型是“描述模型的模型”,最小可用集合包括:Entity(实体类型)、Relation(关系类型)、Attribute(属性定义)、Constraint(约束)。扩展时不要直接改核心元模型,而是通过“属性集挂载”方式增加可选字段。例如为 Part 挂载 MaterialProfile 属性集,包含材料牌号、热处理状态、密度;为 Relation 增加 quantity、referenceCS(装配基准坐标系)等属性。这样既保持核心稳定,又允许不同专业扩展。

五、基于元数据的模型检索与影响分析实战

下面给出一个可执行的检索与影响分析示例。假设我们要查询“所有已发布、材料为钛合金、且被仿真工况引用的零件”,并评估某零件升版后的影响范围。

-- 1. 组合检索:状态 + 材料 + 下游引用
SELECT p.PartID, p.Version, p.Status, m.Material
FROM Part p
JOIN MaterialProfile m ON p.PartID = m.PartID
WHERE p.Status = '已发布'
  AND m.Material = '钛合金'
  AND EXISTS (
    SELECT 1 FROM Lineage l
    WHERE l.UpstreamID = p.PartID
      AND l.DownstreamType = 'Simulation'
  );

-- 2. 影响分析:从变更零件出发正向遍历血缘
WITH RECURSIVE impact AS (
  SELECT DownstreamID, DownstreamType, 1 AS depth
  FROM Lineage WHERE UpstreamID = 'PN-2024-001'
  UNION ALL
  SELECT l.DownstreamID, l.DownstreamType, i.depth + 1
  FROM Lineage l JOIN impact i ON l.UpstreamID = i.DownstreamID
  WHERE i.depth < 5
)
SELECT DownstreamType, COUNT(*) AS affected
FROM impact GROUP BY DownstreamType;

示例结果可假设为:Simulation 命中 2 个、Process 命中 1 个、Assembly 命中 1 个,总影响对象 4 个,风险等级判定为“中”。判断依据是:影响对象数量、是否包含已发布对象、是否存在跨专业引用。若命中已发布仿真工况,则必须触发变更评审,不能直接覆盖原版本。

实践建议:先冻结标识规则与边方向约定,再开始采集元数据;否则后期血缘会出现方向混乱,影响分析结果不可信。
常见误区:把“版本”当作可覆盖字段直接修改。正确做法是新建版本并保留旧版本引用,否则历史仿真与工艺记录将失去可追溯性。

综上,工程模型主数据建模的核心是“语义唯一、关系可溯、版本留痕、元数据可扩展”。当标识、关系、版本、元数据四者贯通后,基于元数据的检索与影响分析才能从“查得到”升级为“判得准”,真正支撑数字线程中的变更决策与跨专业协同。