CesiumLab V1.4 新功能 BIM数据处理
我也没想到,BIM数据处理一下拖了这么久才有个交代。我们照例先放图
![](http://upload-images.jianshu.io/upload_images/11335939-dcd6ca9e3aa5edb4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/800/format/webp)
![](http://upload-images.jianshu.io/upload_images/11335939-6e9913c61e14886d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/800/format/webp)
![](http://upload-images.jianshu.io/upload_images/11335939-9efbd668690de4cd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/800/format/webp)
![](http://upload-images.jianshu.io/upload_images/11335939-5aea3de7057b172f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/800/format/webp)
最近和很多做bim的同行聊天,业内公认,目前 revit 在国内的BIM软件占有率大约在80%~99% ,也就是说搞定rvt模型,基本满足了绝大部分的需求。最开始可选的几种方案:
1,revit 导出 ifc,cesiumlab处理ifc格式;
此方案很快被否,原因是ifc并不能很好的保持revit内的相关属性,而且revit对ifc的导出和导入极度不友好。
2,revit 导出dae,obj等模型格式;
这个方案部分模型基本没有问题,但是对于大模型,基本没有几个插件能成功导出。另外这些格式不能保存bim属性,所以也被否决。
3,revit直接导出3dtiles;
这个方案对大多数用户来说是比较方便的。但是这种一步到位的方案,对我的开发带来极大的工作量,涉及到大量c#到c++之间的接口封装,短期内是不可完成的,遂放弃。
4,revit导出自定义格式;
这就是目前用的方式,我导出的中间格式有三种文件:
1) .lab 模型索引文件,引用了element文件
2) .ele element定义文件,包含了element的bim属性以及 三角网数据
3).ins instance定义文件,包含了instance的三角网数据。对部分rvt模型,里面有大量重复的instance标示不同位置的elements,这个文件会被多个ele文件共享引用,这样大大加速导出过程。
注意:因为实在精力有限,目前插件仅仅支持 revit 2018版本,请不要问我低版本怎么办,解决办法你懂的。
ok,大家是等不及了吧,我们来说说怎么做。
一,安装revit插件
![](http://upload-images.jianshu.io/upload_images/11335939-a7b140f0b22a5b52.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/665/format/webp)
把这三个文件拷贝到如下图所示位置
![](http://upload-images.jianshu.io/upload_images/11335939-4e827091a5fd8639.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/853/format/webp)
二,打开revit 2018
第一次会提示是否加载插件,请选择 总是加载。
打开你准备的rvt模型,切换到3d视图
![](http://upload-images.jianshu.io/upload_images/11335939-aa0f44f176305f89.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/502/format/webp)
![](http://upload-images.jianshu.io/upload_images/11335939-efdf8ab22b5bdbcd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/539/format/webp)
自上而下:
第一行:方便我调试的功能,请忽略。
第二行:导出元素,【全部】就是所有element,【导出选中】就是导出当前选中的element。第三个调试使用,请忽略。
第三行:LOD,revit 通过Lod 来控制当前模型显示的精细程度,因为没有找到相关资料,大概测试这个LOD的范围是 0~15
0 表示最粗略,15表示最精细。对于一些超大模型,建议LOD选低一些。
第四行:右侧按钮选择一个待输出的.lab文件。
第五行:进度条 和 【导出】按钮
三,cesiumlab内处理
![](http://upload-images.jianshu.io/upload_images/11335939-7b550a963312cece.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/800/format/webp)
![](http://upload-images.jianshu.io/upload_images/11335939-6f6a0d9c0baa51cd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/800/format/webp)
这个界面基本和场景处理没有任何区别。就不在赘述了。
处理结束后,一样可以发布为3dtiles服务,并预览。
后记:
这次耗时超过预期的主要原因是:
1,从小白开始学习revit二次开发,加上不断的修改导出格式,加快导出速度,时间就多了一些。
2,在做bim的同时,其实也在优化场景处理。底层场景处理和bim处理目前基本是一致的,只是输入不同。
最后感谢在开发过程中给我提供过帮助的 @李仙伟 @丰,两位无私的分享加快了开发的速度,谢谢。也同时感谢提供我测试数据的各位朋友,以及一直在使用cesiumlab的朋友们,没有你们,就不会有cesiumlab的进步。
![](http://upload-images.jianshu.io/upload_images/11335939-38fc01817d8bc086.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/541/format/webp)