两位老师好。请问下C++中如何从Element或ElementId获取DgnModelRef?谢谢。
这个应该是不可以的。ElementRef + ModelRef才能唯一确定一个元素。比如你当前模型(我这里的“模型指”是含有很多元素的model,不是指某个图形元素)可能参考有其他DGN中的模型,那当前模型中的元素有12345这个ElementId,参考模型中的某个元素也可能有12345这个ElementId。
ElementId仅在每个DGN范围内唯一,但一涉及到有参考问题就复杂了。
好的,谢谢符老师。
再请问一下,DependencyManagerLinkage::AppendLinkage 中添加了其他model中的元素,比如三维model。 其root元素在二维model中,如何可以做到回调函数中二维root元素更改时,随即更改三维model中元素。mdlDependency_getDependentElementRefs可以获取DependentElementRef,取不到Model呢?
请问您的二三维model是在同一个DGN文件中吗?如果不是的话,需要用到far_elemid,如下图所示的几种依赖类型:
如果都是在同一个文件中的话,情况就简单了。从ElementRef构造出ElementHandle,其下有GetDgnModelP可获得元素的DgnModel。
Ok,我试试看。
符老师,在不同model中使用DependencyLinkage,测试中root在二维model, DependencyElm位于三维model,为何更改root时不进回调,更改DependeycyElm可进入回调函数。试过DEPENDENCY_DATA_TYPE_ELEM_ID,DEPENDENCY_DATA_TYPE_FAR_ELEM_ID。