在Revit中通过Bentley Revit Plugin生成的imodel,在随后的切图中, 墙体并不能消隐。见图中,两个墙体,一个是Revit插件生成的,元素类型是106。另一个是我画的Solid。两个一样的Solid(混凝土)分别穿过墙体。在放置一个plan callout后切图,可见自己画的混凝土对于穿过的solid可以被消隐,但由Revit Plugin形成的墙体无法消隐。请问如果解决这个问题?谢谢。
放置Plan Callout之后,在drawing model 中,可见在Revit生成的墙体中,穿过的solid混凝土没有被消隐(红线)。而用Microstation中画的Solid混凝土其消隐正常。附上Dgn文件Sample.dgn.
2728.Sample.dgn
用Drop Element工具,勾选Application选项对106扩展元素执行打散可以恢复到原始基本元素类型。发现这个由Revit转过来的墙体不是一整个实体,而是由多个单独的Mesh面组成的。因而你切图后其实是几个面元素,没有实现消隐也就能解释通了。
是的,我也试过。这种106元素在显示时与solid无异,但切图时却与Solid不同。这是否算是个bug?
另外,如果将其转换为正常的solid?
Wence said:这是否算是个bug?
不一定能算。据我所知,OBD中的墙体不是用一个Solid表达的,它本身就是用六个Shape面围成的。在Revit Plugin转换时将Shape改用Mesh表达了。您可以直接在OBD中测试这种遮挡关系是否能正确?
Wence said:如果将其转换为正常的solid?
选中这六个单独的面,执行Modeling>Surface>Stitch Surfaces后就能转换成一个Smart Solid。此时再切换到DrawingModel就能看到正确的遮挡关系了。
谢谢符老师。
1. 我在OBD放置一个墙体,如你所说,墙体是六个shape。再画一个穿过墙体的slab,在切图后消隐没有问题。见附WenceTest.dgn.这样说来,这个Revit Plugin 没有达到OBD同样的效果,应该视为bug吧?WenceTest.dgn
2. 看来我得写个小工具处理这个问题,那就是先将Revit Plugin生成的imodel转换成dgn,然后打散,然后在将mesh缝合成Smart Solid。在我开始做这个二次开发之前, 还有什么建议来处理这个情况呢?谢谢。
Wence said:这个Revit Plugin 没有达到OBD同样的效果,应该视为bug吧?
有可能。不过最近Bentley的业务方向有所调整,这个Revit Plugin本身就是委托外部公司开发的,目前该插件的开发已经停止,即使是Bug也不容易被修复了。新的政策是要转向iTwin,在iTwin Snapshot中支持Revit Converter。
Wence said:在我开始做这个二次开发之前, 还有什么建议来处理这个情况呢?
请先测试iTwin Snapshot中Revit Connector的效果,如果还是不满意,那只能自己二次开发了。但这种简单的六面墙体好处理,还有更复杂的墙体情况(比如带有空洞的墙体)就不一定好处理了。