2. Windchill 产品数据模型基础

在 Windchill 中做 BOM 协同与产品配置,第一件必须想清楚的事是:你操作的从来不是“一个文件”,而是一组彼此关联的业务对象。产品、部件、文档、CAD 模型、BOM 结构、变更单,都是对象;而版本、迭代、生命周期,则是这些对象身上随时间变化的“状态维度”。如果把这几个概念混在一起,后面就会出现“改了图纸但 BOM 没变”“同一个零件出现两个料号”“发布后还能被随意修改”等典型问题。

一、产品与对象:容器与内容的关系

在 Windchill 的数据模型中,产品(Product)或库(Library)是最上层的组织容器,它决定了编号规则、访问权限、生命周期模板和团队角色。产品之下承载的是各类业务对象,常见的有:

  • 部件(Part):BOM 的基本节点,代表一个可标识、可装配的物料对象,携带料号、名称、单位、类型(自制/外购/虚拟)等属性。
  • 文档(Document):说明性内容,如规格书、工艺卡、检验标准。
  • CAD 文档(CAD Document):三维模型与二维图,通过“CAD 文档与部件关联”建立几何与物料的对应。
  • BOM 结构:由部件之间的父子使用关系(Usage)构成,每条使用关系带有数量、单位、位号、参考设计ator 等属性。

关键点是:产品是容器,对象是内容,BOM 是对象之间的关系。一个部件可以同时被多个产品引用,但它的主数据只有一份,这就是“单一数据源”的含义。

二、版本与迭代:两个不同的时间维度

这是最容易混淆的一对概念。在 Windchill 中:

  • 迭代(Iteration):同一个版本内的小步修改。每次检出、修改、检入,迭代号加一,例如 A.1 → A.2 → A.3。迭代用于记录“工作过程中的每一次保存”,通常不改变对外可见的版本标识。
  • 版本(Version):一次被正式确认的修订,例如 A → B → C。版本通常与生命周期状态跃迁、变更流程绑定,代表“对外发布的正式状态”。

可以这样理解:迭代是“草稿的每一次落笔”,版本是“定稿并盖章”。在 BOM 中引用部件时,默认引用的是最新已发布版本,而不是某个中间迭代。因此,如果只做了迭代但没有升版,BOM 结构不会自动切换到新内容——这正是很多“改了没生效”问题的根源。

判断依据:在部件信息页查看“版本”与“迭代”两个字段。若版本仍为 A、迭代已到 A.5,说明修改尚未通过升版对外生效;若版本已变为 B,则 BOM 引用会按配置规则切换到 B。

三、生命周期:对象的状态机

生命周期(Life Cycle)定义了对象从创建到废弃所经历的状态与跃迁条件。典型状态包括:工作中(In Work)→ 审批中(Under Review)→ 已发布(Released)→ 已废弃(Obsolete)。每个状态对应不同的权限:工作中可编辑,已发布通常只读,废弃不可用于新 BOM。

生命周期与版本的关系是:升版往往由生命周期跃迁触发。例如部件从“工作中”提交审批,审批通过后进入“已发布”,同时版本从 A 升到 B。这样,BOM 中引用的对象状态与版本就保持一致,避免“已发布 BOM 里混着未审批部件”的情况。

四、BOM 如何把这些维度串起来

BOM 结构本身也是一个对象,它由“父部件 + 使用关系 + 子部件”组成。每条使用关系可以配置:

  • 数量与单位:如 4 个、2.5 米;
  • 位号:如 R1、R2,用于电气/装配定位;
  • 参考设计ator:标识该使用关系在特定配置下的可选性;
  • 生效/失效日期或版本范围:控制该关系在哪个版本区间有效。

当 BOM 展开时,Windchill 会按“配置规范”解析:选择哪个版本、哪个生命周期状态、哪个生效日期。默认配置通常是“最新已发布版本 + 已发布状态”。因此,BOM 不是一张静态清单,而是“对象 + 版本 + 状态 + 关系”在某一时刻的解析结果。

Windchill 产品数据模型:对象 · 版本 · 迭代 · 生命周期 · BOM 关系 产品 / 库 编号规则 · 权限 · 团队 生命周期模板 部件(Part) 料号 · 名称 · 单位 类型:自制/外购/虚拟 文档 / CAD 文档 规格书 · 三维模型 与部件建立关联 承载 关联 版本(Version)与迭代(Iteration) 迭代 A.1 → A.2 → A.3 检出/检入,工作过程记录 版本 A → B → C 正式修订,对外生效 升版 生命周期状态机 工作中 审批中 已发布 已发布 → 已废弃(不可用于新 BOM) BOM 结构:父部件 + 使用关系 + 子部件 父部件 A 版本 B · 已发布 使用关系(Usage) 数量 4 · 位号 R1-R4 · 生效版本范围 子部件 B 版本 A · 已发布 版本/状态决定 BOM 解析结果 仅已发布状态可被引用

五、一个可复现的示例:从修改到 BOM 生效

假设产品 P-100 下有一个自制部件 10023456,当前版本 A、迭代 A.3、状态“已发布”,BOM 中父件 10023456 使用子件 10098765(版本 A,数量 4)。现在工程师发现子件数量应为 6,操作过程如下:

  1. 检出 10023456,修改其 BOM 使用关系数量为 6,检入。此时版本仍为 A,迭代变为 A.4,状态回到“工作中”。
  2. 提交审批,审批通过后状态变为“已发布”,版本升为 B。
  3. 在 BOM 展开时,若配置规范为“最新已发布版本”,则解析到 10023456 的 B 版本,数量显示为 6;若配置规范锁定为 A 版本,则仍显示 4。

这个例子说明:BOM 的“变化”不是直接改出来的,而是通过版本与状态的跃迁被解析出来的。理解这一点,才能在协同中判断“为什么别人看到的还是旧数量”。

常见误区:把“检入”当成“发布”。检入只产生新迭代,不改变对外版本;只有生命周期跃迁到“已发布”并升版,BOM 引用才会按默认规则切换到新内容。

六、对象、版本、生命周期与 BOM 的对应关系速查

维度 作用对象 变化方式 对 BOM 的影响
产品/库 容器 新建、归档 决定编号、权限与生命周期模板
部件 物料主数据 新建、修改属性 BOM 节点的身份来源
迭代 同一版本内 检出/检入 不改变默认引用,仅记录过程
版本 正式修订 升版 默认配置下切换 BOM 引用内容
生命周期 状态机 状态跃迁 控制哪些版本可被 BOM 引用
使用关系 BOM 边 增删改数量/位号 决定结构、数量与生效范围

把这张表记牢,后续做 BOM 协同、配置规范、变更影响分析时,就能快速定位问题出在“对象本身”“版本没升”“状态不对”还是“使用关系配置错误”。这是 Windchill 产品数据模型最基础、也最值得反复确认的一层。