Revit轻量化,其实就是把Revit数据提取出来,然后在浏览器或者其他平台中重现出来。这里主要以转成Three.js作为对比。

本文主要以样例中的Technical_school-current_m.rvt(大小15.1m,压缩rar后大小:13.9m)作为样例,:

revit mesh revit mesh转换_json

1.把Revit中每个面作为一个Three.js里的一个mesh

转出来的json结果(大小28.9m,压缩rar后大小2.2m),当然,个人写出来的插件大小有差异,json格式大小放大了近两倍。但是压缩后数据的大小却只有2.2m。所以通过改变服务器的压缩技术可以很大程度的轻量化模型。以下模型可以看出来还原度还是可以的,而且可以选择一个面(防止被喷瞎说)。

revit mesh revit mesh转换_四舍五入_02

2.把Revit中的每一个solid作为Three.js里的一个Mesh,转出来的json大小为11.6m,通过rar压缩后,大小只有821k,整整压缩了十几倍大小。(从下图可以看出可以直接选择一个元素,贴图防止被喷),所以通过这种方式可以很好的轻量化。

revit mesh revit mesh转换_revit mesh_03

3.但是Revit中往往以一个元素作为一个单一的整体,实际应该以一个元素作为一个Mesh,最后的效果如下图,大小只有854k,这个还是我把属性信息全部加进去了,不然更小,足足是原Revit模型的近二十分之一,可见轻量化的效果非常好了。(哈哈,核心机密)

revit mesh revit mesh转换_json_04

4.终极轻量化,将一个Revit模型作为一个mesh。这个数据会更小(后期再做)。

5.终终极轻量化,因为点集都是保留的15位小数,但是在我们工程中,完全不需要这种精度,所以在数据导出的时候,进行四舍五入,保留到mm的后一位,轻量化的数据会更小。

revit mesh revit mesh转换_数据_05

 

所以,根据不同应用场景,选择不同的轻量化方法。另外还可以在终终级轻量化的基础上再减小数据,优化修改Three.js展示模型的算法,会再次减小模型的大小。