4. 工程模型主数据建模方法与元数据管理
工程模型主数据是数字线程中“被反复引用、必须唯一可信”的那一层数据:零件号、装配关系、版本、材料、接口定义、坐标系、设计参数等。它们不是某一次仿真的输入文件,而是贯穿设计、工艺、制造、试验与运维的公共语义底座。本节围绕主数据建模方法论、实体关系与版本管理、元数据采集与血缘、元模型设计与扩展,以及基于元数据的检索与影响分析,给出一条可落地的实现路径。
一、主数据建模方法论:先定语义,再定结构
工程模型主数据建模建议采用“概念—逻辑—物理”三层推进。概念层只回答“有哪些业务对象、它们之间是什么关系”,例如产品、零部件、装配体、版本、文档、接口;逻辑层确定标识、属性、约束与关系基数,例如零件与版本是 1:N,装配关系是带数量的有向引用;物理层再映射到具体存储,如关系库表、图数据库节点或 PLM 对象类型。
建模时优先确定三类要素:唯一标识(如 PartID、VersionID)、业务键(如零件号+版本号)、生命周期状态(设计中、已发布、已冻结、已废弃)。标识一旦发布不可复用,状态迁移必须留痕。示例参数可设为:零件号 PN-2024-001,版本 A/B/C,状态由“设计中”经评审后置为“已发布”,发布后属性进入只读约束。
二、实体关系建模与版本管理
工程主数据的实体关系通常包含:产品—装配体—零件—版本—文档—接口。装配关系不是简单父子,而是带“数量、位号、装配基准、坐标系”的引用边。版本管理推荐“线性版本 + 分支”的混合策略:主线版本 A→B→C 表示正式迭代,分支用于并行改型;版本之间通过 derived_from 记录派生来源,通过 supersedes 记录替代关系。
下面这张图给出本节的核心结构:左侧是主数据实体与版本链,中间是元数据采集与血缘,右侧是元模型扩展与检索影响分析,三者通过统一标识贯通。
三、元数据采集、存储与血缘分析
元数据采集分三类:技术元数据(表、字段、类型、主键、索引)、业务元数据(零件号、版本、状态、材料)、操作元数据(创建人、时间、变更前后值)。采集方式可采用“定时抽取 + 事件触发”组合: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 个,风险等级判定为“中”。判断依据是:影响对象数量、是否包含已发布对象、是否存在跨专业引用。若命中已发布仿真工况,则必须触发变更评审,不能直接覆盖原版本。
综上,工程模型主数据建模的核心是“语义唯一、关系可溯、版本留痕、元数据可扩展”。当标识、关系、版本、元数据四者贯通后,基于元数据的检索与影响分析才能从“查得到”升级为“判得准”,真正支撑数字线程中的变更决策与跨专业协同。