4. Windchill对象模型与数据模型

Windchill 不是“文件夹+文件”的网盘式系统,它的底层是一套面向对象的业务对象模型。理解这套模型,是后续做研发流程、变更管理、权限与报表配置的前提。本节围绕产品、部件、文档、CAD文档、变更对象五类核心对象,讲清它们的结构、关系与属性定义方法。

一、对象模型的基本分层

Windchill 的对象大体分为三层:业务对象层(Product、Part、Document、ChangeRequest 等)、版本与迭代层(Version、Iteration、LifeCycleState)、关系与容器层(Folder、Container、Link、Reference)。业务对象承载业务语义,版本层承载“同一对象随时间演进”的历史,关系层承载对象之间的引用与结构。

所有可版本化对象都继承自 WTPart、WTDocument、EPMDocument 等基类,并共享一组通用属性:编号(Number)、名称(Name)、版本(Version)、生命周期状态(LifeCycle State)、创建者、创建时间、容器(Container)。编号是业务主键,版本是历史标识,二者组合才能唯一定位一个对象的具体形态。

二、五类核心对象的结构与关系

产品(Product)是顶层业务容器,通常对应一条产品线或一个型号。它本身不直接承载 BOM,而是通过“产品-部件”的归属关系把部件组织起来。产品上常定义产品线、平台、市场区域等属性,用于后续报表与权限过滤。

部件(Part)是 BOM 的基本单元,分为自制件、外购件、标准件等类型。部件之间通过 Usage Link(用量关系)构成父子结构,用量关系上可挂数量、单位、位号、参考设计ator 等属性。部件还通过 Reference Link 关联到 CAD 文档,形成“设计模型—工程物料”的映射。

文档(Document)承载非几何类信息,如规格书、测试报告、工艺文件。文档与部件之间通过 Described By 或 Reference 关系关联,表示“该部件由某文档描述”或“该部件参考某文档”。

CAD 文档(EPMDocument)是三维模型、二维图纸在 Windchill 中的对象化表示。它通过 CAD Structure 表达装配层级,并通过 EPMReference 与部件建立“设计—物料”对应。一个部件可以关联多个 CAD 文档(如零件模型+工程图),一个 CAD 文档也可被多个部件引用。

变更对象包括变更请求(Change Request)、变更通告(Change Notice)、变更任务(Change Task)。变更请求描述“为什么要改”,变更通告描述“改什么、怎么改”,变更任务描述“谁在什么时候改”。变更对象通过 Affected Object 与 Resulting Object 关系挂接待变更的部件、文档或 CAD 文档,形成“变更前—变更后”的追溯链。

Windchill 核心业务对象关系图 产品 Product 产品线 / 平台 / 市场区域 部件 Part 自制件 / 外购件 / 标准件 文档 Document 规格书 / 测试报告 / 工艺 CAD文档 EPMDocument 三维模型 / 二维图纸 变更对象 变更请求 CR → 变更通告 CN → 变更任务 CT Affected Object / Resulting Object 归属关系 Described By Reference Link Affected / Resulting 变更挂接 变更挂接 Usage Link 版本与迭代层 Version / Iteration / 状态 关系与容器层 Folder / Container / Link

三、属性定义方法

属性定义分三步:先确定属性类型(文本、数字、日期、布尔、下拉枚举、对象引用),再确定属性归属(全局属性、类型属性、可重用属性),最后确定属性行为(是否必填、是否可编辑、是否参与版本控制、是否触发工作流)。

以部件为例,常见属性定义如下:

属性名类型归属行为
Number文本全局必填、唯一、不可编辑
Name文本类型必填、可编辑
PartType枚举类型必填、创建后不可改
Material文本可重用选填、参与报表
Weight数字可重用选填、单位 kg
LifeCycleState枚举系统由工作流驱动

属性定义完成后,需要在类型管理器中创建“部件子类型”,把上述属性挂到子类型上,再通过布局(Layout)控制属性在创建/编辑界面的显示顺序与分组。这一步决定了用户实际看到的表单长什么样。

四、版本与迭代:对象的历史维度

Windchill 用“版本+迭代”表达对象历史。版本用字母表示(A、B、C…),迭代用数字表示(1、2、3…)。例如 A.1 表示 A 版第 1 次迭代,A.2 表示 A 版第 2 次迭代,B.1 表示升版后的 B 版第 1 次迭代。

迭代通常发生在对象仍处于“工作中”状态时,用于保存小修改;升版发生在对象经过审批、进入“已发布”状态后,用于开启新一轮设计。版本与迭代的组合,配合生命周期状态,构成了对象“当前是什么、曾经是什么、能不能改”的完整判断依据。

五、实操示例:定义一个“电机部件”对象

假设要为某型号电机定义部件对象,可按以下步骤操作(示例参数为教学假设,非实测数据):

  1. 在类型管理器中新建子类型 MotorPart,父类型选择 WTPart。
  2. 添加属性:RatedVoltage(数字,单位 V)、RatedPower(数字,单位 kW)、InsulationClass(枚举:B/F/H)、MountingType(枚举:B3/B5/B35)。
  3. 设置 RatedVoltage 与 RatedPower 为必填,InsulationClass 默认值为 F。
  4. 在布局中把四个属性放入“电气参数”分组,显示在“基本属性”之后。
  5. 创建部件实例:编号 MTR-001,名称“主驱动电机”,类型 MotorPart,额定电压 380V,额定功率 7.5kW,绝缘等级 F,安装方式 B3。
  6. 为该部件关联 CAD 文档 MTR-001.prt 与工程图 MTR-001.drw,关系类型选 Reference Link。
  7. 创建变更请求 CR-2024-018,Affected Object 指向 MTR-001 A.1,描述“额定功率由 7.5kW 调整为 11kW”。

完成后,在部件详情页应能看到:基本属性、电气参数、关联 CAD 文档、变更历史四个区域。若变更请求审批通过并执行,MTR-001 会从 A.1 升版为 B.1,Resulting Object 指向新版本,旧版本保留可追溯。

对象建模的核心判断标准:任意一个业务对象,能否回答“它是什么、它属于谁、它由什么组成、它被谁引用、它改过几次、当前能不能改”。这六个问题都能从对象模型中找到对应属性或关系,建模就是合格的。
常见错误:把产品当成部件来建 BOM,导致产品层与部件层混淆;或者把 CAD 文档直接当部件用,跳过 Reference Link,造成设计变更无法自动传递到 BOM。正确做法是产品管归属、部件管 BOM、CAD 文档管几何、文档管说明、变更对象管历史。

掌握这五类对象的结构与关系后,后续的流程配置、权限规则、报表取数才有稳定的数据基础。对象模型一旦上线并被大量引用,再调整类型或属性会带来迁移成本,因此建模阶段应尽量把属性类型、必填规则、版本策略一次定义清楚。