3. Teamcenter数据模型基础

在Teamcenter中做BOM与产品配置管理,第一道门槛不是界面操作,而是理解对象模型。很多“为什么改了一个地方另一个地方也变了”“为什么同一个零件在不同父件下表现不同”“为什么版本升级后BOM结构看起来没变”的问题,根源都在对象模型上。Teamcenter把“是什么”“哪一版”“结构长什么样”“结构在哪一版”“结构里这一处引用”拆成了不同层次的对象,每一层承担不同职责。只有把这几层关系理顺,后面的BOM创建、版本控制、配置过滤、变更管理才有稳定的语义基础。

一、从“物料”到“结构”:五类核心对象的分工

最上层是Item。Item代表一个被管理的业务对象,通常对应一个物料、一个零件号或一个文档编号。它本身不承载具体版本内容,更像一个“身份容器”或“主记录”。例如,企业里有一个零件号 P-10023,这个编号在Teamcenter中就是一个Item。Item上通常挂载编号、名称、类型、单位等相对稳定的属性。

Item之下是ItemRevision。ItemRevision是Item的版本化载体,代表这个物料在某一版次下的具体状态。一个Item可以有多个ItemRevision,例如 P-10023/A、P-10023/B、P-10023/C。版本升级时,新建的是ItemRevision,而不是新建Item。ItemRevision上承载版本相关的属性,如版本号、状态、生效日期、变更单号等。工程实践中,图纸、三维模型、技术文件通常也挂在ItemRevision下,因此ItemRevision是“某一版物料及其附属内容”的聚合点。

接下来是BOMView。BOMView是ItemRevision下用于表达“结构视图”的对象。一个ItemRevision可以有多个BOMView,常见的有设计BOM视图、制造BOM视图、服务BOM视图等。BOMView本身不是结构内容,而是结构的“视图分类容器”。它回答的是“这个版本要从哪个视角看结构”。例如,同一个产品版本,设计视图关注功能模块划分,制造视图关注装配工序和物料消耗,两者可以有不同的BOMView。

BOMView之下是BOMViewRevision。BOMViewRevision是BOMView的版本化结构载体,真正承载某一版结构行。它下面挂的是Occurrence,也就是BOM结构中的每一行“使用关系”。Occurrence不是子件本身,而是“父件在某一版结构中使用了某个子件”的引用关系。它记录的是引用关系上的属性,如数量、位号、查找编号、装配位置、是否可选、配置条件等。理解Occurrence的关键在于:它连接的是父件结构版本与子件版本,而不是父件与子件两个Item直接相连。

Teamcenter BOM 核心对象模型关系 Item 物料身份 / 编号主记录 P-10023 ItemRevision 版本化载体 P-10023/A、/B、/C BOMView 结构视图分类 设计视图 / 制造视图 BOMViewRevision 结构版本载体 某一版结构行集合 BOMViewRevision 内部:Occurrence 结构行 父件 BOMViewRevision P-10023/A 设计视图 Occurrence 1 数量=2 位号=R1,R2 配置条件:标配 Occurrence 2 数量=1 位号=M1 配置条件:选装A Occurrence 3 数量=4 位号=B1-B4 配置条件:选装B 子件 ItemRevision P-20001/B 电阻器 子件 ItemRevision P-20045/A 电机 子件 ItemRevision P-20078/C 螺栓 说明:Occurrence 是父件结构版本对子件版本的引用关系,数量、位号、配置条件等属性挂在 Occurrence 上。

二、对象之间的引用关系与版本语义

把上述对象串起来看,关系链是:Item 1—N ItemRevision,ItemRevision 1—N BOMView,BOMView 1—N BOMViewRevision,BOMViewRevision 1—N Occurrence,Occurrence N—1 子件 ItemRevision。这里有两个容易混淆的点。

第一,BOMView与BOMViewRevision是“视图”与“视图版本”的关系。BOMView本身不随版本升级而新建,它更像一个稳定的视图分类;BOMViewRevision才随结构版本变化而新建。例如设计视图这个BOMView可以长期存在,但每次结构改版会生成新的BOMViewRevision。

第二,Occurrence指向的是子件的ItemRevision,而不是子件Item。这意味着父件结构在某一版中引用的子件版本是明确的。如果子件从A版升到B版,父件结构不会自动切换,除非通过版本规则或变更流程显式更新Occurrence的引用目标。这正是“版本升级后BOM结构看起来没变”的常见原因:父件结构版本没变,Occurrence仍指向旧版子件。

三、用一个小例子把关系走通

假设产品 P-10023 是一个控制盒,其A版设计BOM中包含三个子件:电阻器 P-20001/B 数量2、电机 P-20045/A 数量1、螺栓 P-20078/C 数量4。在Teamcenter中,这些数据不会直接写成“P-10023包含P-20001”,而是表现为:P-10023/A的ItemRevision下有一个设计BOMView,该BOMView下有一个BOMViewRevision,其中包含三条Occurrence。每条Occurrence分别指向对应的子件ItemRevision,并在Occurrence上记录数量、位号和配置条件。

如果后来电阻器升级到C版,而控制盒结构没有发起变更,那么P-10023/A的Occurrence仍然指向P-20001/B。此时如果查看最新有效结构,系统可能通过版本规则解析到P-20001/C,但结构行本身记录的引用目标并未改变。理解这一点,对后续做BOM版本规则、配置过滤和变更影响分析非常关键。

判断一个BOM问题出在哪一层,可以按“身份—版本—视图—结构版本—结构行”的顺序逐层排查:编号对不对看Item,版本对不对看ItemRevision,视图选没选对看BOMView,结构版本对不对看BOMViewRevision,某一行数量或引用版本对不对看Occurrence。

四、为什么这套模型对BOM与配置管理重要

这套分层模型带来的直接好处是职责分离。Item管身份,ItemRevision管版本,BOMView管视图,BOMViewRevision管结构版本,Occurrence管使用关系。配置管理中的变量、选项、配置条件通常作用在Occurrence上,因为“是否选用某个子件”本质上是结构行级别的判断,而不是物料身份级别的判断。版本规则则作用在ItemRevision的解析上,决定在某个时间点或某个配置下应该取哪一版。变更管理往往同时涉及ItemRevision和BOMViewRevision,因为改版既可能改物料本身,也可能改结构。

在实际建模时,建议先明确三件事:这个对象是身份还是版本;这个结构属于哪个视图;这条结构行引用的是哪个子件版本。把这三件事在数据模型上对齐,后续的BOM搭建、配置过滤、版本切换和变更追溯才不会出现语义混乱。