我在ORD中的二维放了一个具有特征定义的点,在三维里会生成一个单元,能不能我在二维里点显示的只是一个简单的图例而不是单元,三维里显示的是模型。
通过编程实现的话可以使用ViewCallback::SetSubstituteElemFunction设置一个回调函数,这个函数会在元素在视图绘制前被调用,相应的元素会被传递进来,您可以返回一个新的元素,这样视图里边就不再绘制原元素,而是绘制返回的新元素了。
MS学习资源:
MicroStation Wednesday视频分享
深入探讨MicroStation DGN基本概念系列
一步步学习MicroStation CE Addin开发
一步步学习MicroStation CE MDL开发
Answer Verified By: ZhangFan
郭老师,能否提供一个简单的示例,演示如何使用。谢谢。
更新了。因为程序很大,系统自动会更新图纸。您发的那个园能正常显示,单独画一条线也能正常显示,就是只要一运行上面的代码就什么都没有了。
我这边测试是没问题的,我建议您也弄一个单独的函数去测试一下,我说的图纸更新指的是,要更新一下模型,因为切图时如果选择了“Cache Edges”的方式的话,图纸一旦生成,是不会再以DrawPurpose::ExportVisibleEdges去回调MyViewFunc_SubstituteElem函数的,除非模型有变化。
您测试的是我给的代码吗?
是的。
郭老师,我有类似的需求,封总这段代码我试了一下,is3d设置为true就可以正常显示,model设置成当前或者elem的model都不影响。
现在有一个新问题,如何获取元素到图纸模型中的转换矩阵,看了一下,elem拿到的是原来的元素,它的model不是attach