请问一下,我想在opm中根据选中的管线获取管线上的支吊架如何实现呢?

如题,我通过交互工具选择了指定的管线,然后想获取管线上的支吊架进行标注,不知道如何获取,请帮忙。

Parents Reply
  • 首先您截图中的这个支吊架确实不是 DEVICE_HAS_SUPPORT 对应的 SUPPORT(去查ClassEditer),所以没找到是正常的。

    其次您都发现这个支吊架对应的是 PIPE_SUPPORT 这个类,接下来您的思路应该是这个 PIPE_SUPPORT 有什么relationship。通过查询 ClassEditer 不难发现这个家伙有一个这个 relationship: ObjectHasSupport. 接下来将上述代码中的 relationship 替换掉,是不是就可以找到唯三的支吊架了?

    由于中英文翻译问题,这种情况是非常常见的。可以从 ClassEditer 中发现,有好几个class 都叫 *support ,而且没有很近的父子关系,也许他们在英文环境中代表不同的支吊架,所以我们通常要去检查一下 relaionship 对应的两边的 ecclass 是不是我们期望的。

    再多啰嗦几句,像管道这些是比较核心的opm组件,所以它所拥有的relationship是很多的。但是像支吊架这种,一般来说它所拥有的关系就很少,您可以先从支吊架入手,查询支吊架拥有哪些relationship,从得到的relationshipinstance 的source属性中获取这个支吊架是和何种元素关联的,他们的关联relationship是什么,得到这些信息之后,你就可以胸有成竹的获取您想要的支吊架。

    Answer Verified By: Ethan Yuan 

Children
  • 多谢帮忙,通过ObjectHasSupport确实找到了,然后你说的这个查找方式也是我特别晕的地方,我在classeditor里确实看到了PipingSupport, 然后他的Relationship里找到了ObjectHasSupport,但是这个PipingSupport我其实是根据管道自己猜出来的,我的管道的ECClass名字是PIPE,但是我看好像没有从PIPE到PipingSupport的联系,这块是真的晕,不过多谢帮忙了,当前问题先解决了