理解扩展特征【技术文档】
摘要本文详细介绍了将一个特征称为基础特征通过另一个特征称为扩展特征进行扩展的机制。概念一张解释概念的图片图.1 概念基础特征可以是任何类型的特征可以是达索系统的原始特征也可以是用户自定义的特征。您可以通过另一个称为扩展特征的特征来扩展它。这个特征可以像任何其他特征一样拥有自己的属性和自己的行为。扩展特征本身不能被扩展即基础特征不能是扩展特征。扩展机制的意义在于基础特征聚合新的扩展特征而无需修改基础特征的启动项。CATFmFeatureFacade类提供了方法来从基础特征添加、移除或检索扩展特征从扩展特征检索基础特征用例使用扩展特征1是这些方法的一个示例。现在进一步了解扩展特征。什么是扩展特征首先它是一个特征。因此同任何其他特征一样您使用OSM语言2来设计它。它的特殊性在于使用OSM定义时会添加extension标识符表明其是扩展特征。您将在下一节设计扩展特征看到实现细节。一个扩展特征可以同时扩展多个基础特征。被扩展的特征基础特征在 OSM 中声明请参阅声明用于管理扩展特征的信息部分。但是反过来对于给定的基础特征扩展特征只能被实例化一次。图.2 可行与不可行在图2中可以看到扩展特征1扩展了两个基础特征但是特征的被同一个扩展特征扩展两次扩展特征2是不可能的。此检查由CATFmFeatureFacade类的AddExtension方法确保。这是向基础特征添加扩展的唯一方法。注意通过扩展协议基础特征聚合了扩展特征。因此需要注意不要将同一个扩展特征聚合到另外的基础特征上。从内部特征建模器特征派生的特征我们之前说过扩展特征在OSM文件中使用特殊标签声明因此通过这种方式你可以创建一个从特定特征派生的新启动项。虽然不能直接访问派生特征的属性但可以派生特征提供的接口拥有新的能力。您可以在在扩展特征上需要实现的接口找到详细信息。生命周期扩展特征由基础特征聚合这意味着扩展特征的生命周期与其基础特征相关联。当基础特征被删除时其所有声明为组件的聚合元素都将被删除例如其所有扩展特征。当需要删除扩展特征时您可以在基础特征上使用CATFmFeatureFacade接口的RemoveExtension方法或者在扩展特征本身上使用同一类的DeleteSelf方法。在这两种情况下扩展特征都会被删除并从其基础特征中移除。像任何特征一样扩展特征也可以自定义自己的删除行为包括删除前的预处理和一同删除的对象请参阅在扩展特征上需要实现的接口部分。扩展特征如果没有被基础特征聚合就没有存在的理由。基础特征实例化想象一种情况基础特征已经包含一个扩展特征而这个基础特征一个实例又被实例化。请参阅参考文献3中的实例/引用概念。您可以选择是否复制扩展特征。图.3 局部或非局部扩展特征在图3中基础特征一个实例是一个将被实例化的引用。如果您将扩展特征声明为“local”它将在新的基础特征实例上不被实例化否则它也将被实例化。这种局部/非局部声明是通过OSM文件完成的请参阅声明用于管理扩展特征的信息部分并且在运行时不可修改。强烈推荐使用局部模式。扩展特征外部命名我们想告知读者关于扩展特征命名的一个小特点。这个特征像任何其他特征一样被处理这意味着它的自动名称将包含一个增量数字。但是如果您阅读文章4您会看到该值是从聚合特征计算得出的。因此如果您不自己更改外部名称计算您可能会为不同的扩展特征多次获得相同的外部名称5。图.4 扩展特征命名下面您可以看到产品结构用例6在扩展特征上实现CATIAlias之前的图片。您可以看到所有扩展都具有相同的外部名称CAAPstINFRelimitedLine.1。这是因为扩展特征是它们各自基础特征聚合的第一个元素。您可以通过在扩展特征上实现CATIAlias接口来解决此用例中的问题5。像其他特征一样的特征此特征集成了撤销/重做机制。何处存储扩展特征阅读文章理解应用容器7后您了解到特征只能在容器内实例化。当您使用CATFmFeatureFacade接口的AddExtension方法来扩展基础特征时此方法最终会创建扩展特征的一个实例。但是如果您考虑此方法的签名它只包含扩展的标识符。因此该方法需要一个额外的信息来检索容器。此信息将在定义扩展特征启动项的OSM文件中检索。请参阅声明用于管理扩展特征的信息部分。选择正确容器的一些建议哪种类型的容器必须遵守的强制性规则是基础特征和扩展特征必须在同一个 PLM 表达参考7中。它们可以在同一个容器中或者在两个不同的容器中但它们必须在同一个PLM表达参考中。我可以使用基础特征容器吗如果这个容器是您的容器那是可以的。否则请创建另一个应用容器。您不能将您的特征插入到不属于您的容器中。我可以使用与包含我的应用特征相同的容器吗没有限制规定您的两种类型的特征那些从头设计的特征和您的扩展特征共享同一个容器。开发扩展特征的主要步骤现在我们已经了解了概念我们可以展示实现细节。我们建议读者要真正了解扩展特征的用法可以参考实现该机制的不同用例特征建模器中的扩展特征8扩展应用特征在产品模型器中6扩展机械特征9设计扩展特征使用OSM 技术2您可以通过使用标签来设计扩展特征。document MyStartUpCatalogName.CATfct { container RootCont #root { ... feature MyExtensionName #startup #extension { ... } ... } }注意#startup #extension 它将特征语句声明为扩展特征的启动项。我们加粗了需要自定义的参数第一个MyStartUpCatalogName是包含此OSM文件设计的所有启动项的目录的名称。您可以更新现有目录或创建一个新目录以集成您的新扩展特征启动项。第二个MyExtensionName是扩展特征的标识符。请遵守 CAA 命名规则10。此标识符用于作为在您的扩展特征上实现接口的晚期类型添加或检索扩展。AddExtension和GetExtension方法需要此标识符作为输入。在两个括号之间您定义了扩展特征本身。... feature MyExtensionName #startup #extension { #creation::parameter metadata_identifier1 ... attribute 1 attribute 2 ... } ...像往常一样可以插入属性定义或许还有一些初始化。但最相关的信息是#creation::parameter行。对于扩展特征这一行是强制性的。只有当您的启动项派生自另一个本身直接或间接拥有此声明的启动项时您才可以省略它。在这种情况下您继承了派生启动项的行为。有关派生示例请参阅用例8。metadata_identifier1是一个元数据语句的名称该语句声明了用于管理扩展特征的信息document MyStartUpCatalogName.CATfct { container RootCont #root { ... feature MyExtensionName #startup #extension { #creation::parameter metadata_identifier1 ... } ... } metadata metadata_identifier1 { ... } }元数据语句与容器语句位于同一级别。多个扩展特征可以共享同一个元数据块。现在让我们详细说明这个特定元数据块的内容。声明用于管理扩展特征的信息与#creation::parameter方面关联的元数据块必须包含以下四行。每一行都必须添加但顺序无关紧要。metadata metadata_identifier { ContType ContainerType Container ContainerName Extends [ StartUp1,...] IsLocal true | false }请注意 当更新osm文件时可以省略但是当osm文件由CATFctEditorAssistant生成时将可见。用于自动创建应用容器的信息。ContType参数是容器的晚期类型。如有必要请参阅《理解应用容器》文章7的创建部分。多亏了这行AddExtension方法能够在当前 PLM 表达参考7的主数据流中自动创建容器如果尚不存在。此方法在创建后将通过调用CATInit接口的init方法来激活容器。ContTypeMyContainerType要在其中实例化扩展特征的容器的标识符将在其中创建扩展特征的容器的标识符。ContainerMyApplicativeContainerIdentifier可扩展特征的列表其中MyBaseFeaturei是基础特征的标识符启动项标识符4。该列表当然必须至少包含一个元素。可扩展的启动项列表由每个应用程序定义请参阅其文档。Extends[MyBaseFeature1, MyBaseFeature2, MyBaseFeature3]注意如果启动项仅扩展一个特征请不要忘记 []典型错误Extends[MyBaseFeature1]局部或非局部IsLocal true or false值可以是 true表明是局部数据在基础特征实例化的情况下不实例化扩展特征或 false否则强烈推荐 true。关于应用容器在理解应用容器文章7中你将找到创建此容器并将其集成到标准达索系统行为中的所有细节。上述参考用例对于研究模型器之间的细微差异很有意义。在此我们将告知读者当应用容器包含扩展特征时的主要特点无论负责数据流的建模器是什么当数据流在会话中加载时换句话说数据流在编辑模式下打开或切换到编辑模式11所有应用容器都会自动加载和初始化。在扩展特征上需要实现的接口除了在任何特征上原生实现的CATIRedrawEvents之外需要在每个扩展特征上实现的基本接口有接口名称上下文行为MyInterface所有用于处理扩展特征属性的接口CATIModelEventsUI能够更新查看器CATI3DGeoVisu/CATI2DGeoVisuUI定义 2D/3D 可视化CATIVisPropertiesUI能够通过属性命令修改图形属性CATISelectShowUI能够隐藏/显示扩展特征也必须实现CATIVisPropertiesCATIEditUI编辑扩展特征CATIFmFeatureBehaviorCustomization所有自定义删除[13]实现构建[14]但不要使用此接口来自定义 CCP 行为。CATINavigateObject (*)UI为节点提供名称并列出其子节点以便在规范树中可视化。检查基础特征本身是否实现了 CATINavigateObject以及其实现是否考虑了其可能的扩展。CATIAlias所有提供SetAlias和GetAliasCATIUseEntity所有请参阅参考文章12这是最通用的接口然后根据定义基础特征的应用程序可能存在一些其他接口。但在所有情况下首先查看定义基础特征的应用程序的文档您可以找到集成扩展特征所需的所有信息。简而言之本文解释了扩展特征机制是扩展任何类型特征扩展特征除外的方法可以同时实现定义独立的数据和特征行为。在基础特征外部无需修改基础特征。该机制有许多便利之处扩展特征的生命周期与基础特征绑定删除基础特征会导致其扩展被删除。当需要时包含扩展的应用容器会自动打开和初始化。通过在OSM文件中声明正确的信息可以自动创建应用容器。您应该交付包含扩展特征的启动项目录文件。可能需要创建和管理一个新的应用容器。在新特征上实现接口。历史版本1 [2007年10月] | 文档创建使用扩展特征 ↩︎特征建模启动项 ↩︎ ↩︎特征建模器概念 ↩︎理解特征命名 ↩︎ ↩︎自定义特征命名 ↩︎ ↩︎扩展应用数据产品上下文 ↩︎ ↩︎理解应用容器 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎定义扩展特征 ↩︎ ↩︎机械建模器扩展概述 ↩︎C 命名规则 ↩︎理解表达加载模式 ↩︎

相关新闻

云智慧Cloudwise X1 轮足机器人重磅发布:跨楼层全自动巡检,重塑数据中心运维范式

云智慧Cloudwise X1 轮足机器人重磅发布:跨楼层全自动巡检,重塑数据中心运维范式

随着算力需求激增,数据中心规模快速扩张,传统人工巡检正面临漏检率高、人才流动快、合规追溯难、老旧机房改造成本高等系统性瓶颈。从纸质记录到手持PDA,再到自主巡检机器人,运维方式的智能化演进,已成为行业共识。当轮…

2026/7/3 18:36:32 阅读更多 →
60天自我松绑:一个“被困住”成长者的破局宣言

60天自我松绑:一个“被困住”成长者的破局宣言

困局中的觉醒凌晨三点的屏幕冷光,映照出空洞的眼神。拇指机械滑动,从短视频跳转到“深度好文”,信息潮水般涌来,退去后却留下更深的虚无。四小时后,闹钟将唤醒我奔赴那重复千次的工位。内心尖叫着“这不是我想要的生活…

2026/7/3 18:36:34 阅读更多 →
如何甄别一家靠谱的背调公司?

如何甄别一家靠谱的背调公司?

如何选择一家可靠的背调服务商,是企业招聘中关键却常被忽视的一环。在信息繁杂的市场中,甄别需要回归核心,关注以下几个务实维度。首先,核查其数据源的合法性与广度。专业的背调公司应具备多元、合规的信息获取渠道,而…

2026/7/4 20:19:26 阅读更多 →

最新新闻

免费前端开发库认证终极指南:从零到专业的三步进阶法

免费前端开发库认证终极指南:从零到专业的三步进阶法

免费前端开发库认证终极指南:从零到专业的三步进阶法 【免费下载链接】freeCodeCamp freeCodeCamp.orgs open-source codebase and curriculum. Learn math, programming, and computer science for free. 项目地址: https://gitcode.com/GitHub_Trending/fr/free…

2026/7/7 0:47:42 阅读更多 →
结构化方法:自顶向下的“拆解术“

结构化方法:自顶向下的“拆解术“

结构化方法:自顶向下的"拆解术" 开篇:从拆快递中学到的智慧 你有没有这样的经历? 收到一个巨大的快递,打开一看,里面有无数个小包裹,每个小包裹里还有更小的包裹,层层嵌套。 这种"从大到小、层层分解"的方式,就是结构化方法的核心思想。 什么…

2026/7/7 0:43:41 阅读更多 →
并发编程核心概念辨析

并发编程核心概念辨析

一、背景:CPU 多级缓存架构为了读者在阅读后序章节时,有更清晰、更形象的认知,这里放上现代 CPU 缓存的典型结构。一图胜千言,不多赘述,仅陈述以下要点:一颗 CPU,往往有多个核心(cor…

2026/7/7 0:43:41 阅读更多 →
如何识别PARP14

如何识别PARP14

一、PARP14的基础概述聚腺苷二磷酸核糖聚合酶14(PARP14,Poly(ADP-ribose) polymerase 14),也被称为PARP-4,是PARP家族中的一个重要成员。PARP家族包括多个聚腺苷二磷酸核糖聚合酶,它们在细胞的多个关键过程…

2026/7/7 0:39:40 阅读更多 →
Java毕设选题推荐:基于 SpringBoot 的教学过程考核评价系统的设计与实现 基于 SpringBoot 的课程阶段性考核管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 SpringBoot 的教学过程考核评价系统的设计与实现 基于 SpringBoot 的课程阶段性考核管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/7 0:37:39 阅读更多 →
综合项目三:Web全栈应用从零部署

综合项目三:Web全栈应用从零部署

在当今的互联网时代,掌握全栈开发与部署能力是每一位后端开发者、DevOps 工程师乃至独立开发者的核心竞争力。然而,很多初学者在完成代码编写后,却在部署环节频频碰壁——服务器环境配置、域名解析、HTTPS 证书、负载均衡、日志监控……这些“最后一公里”的问题往往比写代码…

2026/7/7 0:35:38 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻