现已知如下三种渠道:
第一从当前模型中枚举所参考的其它模型,一个一个找,直到找到合适的。
第二种是直接从DgnModelRef中AsDgnAttachment提升出来。
第三种是用FindDgnAttachmentByElementId从当前model中找出来。
现测试如下:
第一种方案可以生效,也是sdk-example中用的方案。
第二种方案,测试如下:在剖面的绘图模型中点击获取ElementAgenda后,GetAgenda(),用拿出来的ElemAgendaEntry获取DgnModelRef,然后试图提升为DgnAttachment
测试结果:未成功,一直都返回nullptr
第三种方案,测试如下:把ElemAgendaEntry的elementid输入FindDgnAttachmentByElementId,当前绘图模型作为this,
测试结果:未成功
请问后两种方案是对OBD剖面完全不支持吗?
lblk dug said:第二种方案,测试如下:在剖面的绘图模型中点击获取ElementAgenda后,GetAgenda(),用拿出来的ElemAgendaEntry获取DgnModelRef,然后试图提升为DgnAttachment
元素必须是参考中的元素,AsDgnAttachment才会返回元素所在的参考。
lblk dug said:第三种方案,测试如下:把ElemAgendaEntry的elementid输入FindDgnAttachmentByElementId,当前绘图模型作为this,
这个传入的ID不是图形元素的ID,在Model中创建参考时,后台实际上也是创建了一个元素,这个元素就代表了参考。这个元素的ID可以传给FindDgnAttachmentByElementId,这个ID也可以通过DgnAttachment下的GetElementId函数获取到。
Answer Verified By: lblk dug
HongQiang Guo said:元素必须是参考中的元素,AsDgnAttachment才会返回元素所在的参考。
剖面不就是参考的主模型的元素吗?为啥在剖面绘图上会失效呢?
HongQiang Guo said:这个ID也可以通过DgnAttachment下的GetElementId函数获取到
原来如此
lblk dug said:剖面不就是参考的主模型的元素吗?为啥在剖面绘图上会失效呢?
我这边无法复现,能否录屏演示一下您那边的现象?