ORD中通过Open Profile Model命令可以将生成一个临时模型查看路线的Profile,并将模型应用到某个视图中,同时点击该视图时会反向标识路线元素,想请问一下在底层是如何实现【通过该临时模型反向获取其所属元素】该机制的?是否能够通过代码达到通过模型反向获取元素的效果?
ORD的profile 的model是一个很特殊的模型,它在dgn文件里是隐藏的。你上面所说的问题在ORD里是这样的流程 1.首先参考一个路线的DGN文件。2.当你打开参考文件中路线的profile时,系统会自动创建一个隐藏的model,3.这个model并不是临时的,系统会自动给这个model添加原来的路线的profile的参考。 最后呈现的效果就像你描述的一样,可以获取它引用的模型的元素数据。
添加原来路线的参考,具体是怎么参考的呢,参考了哪些内容呢?
你可以通过SDK 获取到profile的元素所在的model的。用户是无法在界面上操作的。
PS:ORD的SDK里的每个有几何元素的类型都对应一个element元素,你可以通过这个元素获取到对应的model。
麻烦能再说详细一点吗?您的意思是路线的profile是有实际的元素吗?比如路线A的Profile创建了模型M,是可以从A上获取M还是从Profile获取M?具体接口名是什么呢?
你可以查看ModelEntity这个类,凡是继承这个类的都是有property Bentley::DgnPlatformNET::Elements::Element^ Element 属性,你通过这个可以获取对应的元素信息
您理解错我的意思了,我是想通过路线获取profile模型,或者反之。比如我已经有了路线的Element对象,如何才能获取对应的profile模型呢?如果有了特定的profile模型,如何获取其对应的Element对象呢?
如果有了profile的element可以通过 CreateFromElementHandle 函数获取profile对象。如果有了profile对象,可以通过基类的GetElementHandle 函数获取element。
您好,我现在只有一个Profile的模型,没有profile的Element呀。通过profile模型DgnModelP,该如何获取对应的Profile对象呢?我查了头文件里面只能通过DgnElementECInstance来进行构造。