BIM Revit 模型导出 1

3 篇文章 0 订阅

  这两年 bims 系统渐渐增加。需要的建筑模型几乎都需要 revit模型导出。 不编程的做法是: revit->navis->fbx。 fbx可以被很多软件和游戏引擎识别。 但是这种导出会有很多问题。比如材质丢失、附加属性无法导出等,同时导出速度非常非常慢。 一个50m的文件可能需要几个小时。 如果使用 three.js,可以配合blender导出为js文件。同样存在以上问题。导出效率可能也是50m文件 需要一晚上。

   最终的解决办法 是 写revit 插件进行手动导出。看似比较麻烦,实际revit导出插件步骤挺简单。revit的开发插件为c#, 一般使用 revit2016配合 vs2012或者 vs2013 . 导出为js文件,格式简单。但是对于多模型对象分别导出,three.js的js格式无法保存多个对象。需要分别保存文件。具体可能没深入研究,也许有多模型的写入格式?

    c#插件导出,有极大问题,那就是效率。主要为 格式化 各种数值的时候。 这是对比c++可以慢10倍的。所以如果要做到非常高的效率。还得需要在插件中,再次调用C++的dll进行数据导出才会变快。否则一个100m的文件可能需要几个小时。(根据写入算法的水平可能有区别。目前能做到140m文件导出数据json50m,8分钟完成。当然这里面包含了顶点去重复,面内多顶点优化等操作)。

  对于顶点材质等信息去重复,经常 需要用到字典,切忌使用 list这种暴力搜索。

   想要进一步压缩 按照lod的思路,对顶点相关的三角面计算顶点权重,进行取舍,可以做 lod模型。

   如果按照相同对象,独立导出,再记录位置 缩放 旋转等信息。这样导出,可以进一步提高速度。否则对于 bims模型动辄百兆模型,一次导出没有几天也得几个小时。特别是管线导出特别多。 所以revit模型导出的优化(数据量优化,速度优化)总结为:

  1、顶点去重复。字典或者hash优化速度。可减少数据10-30%

  2、面内顶点优化,字典或者hash优化速度。可以减少数据量10-30%

  3、c++优化,这个可以比c#提高10倍。

  4、空间顶点相邻三角面 Lod 剔除。这个会影响展示效果。不影响效果的情况下 只能提高10-20%的数据量

  5、按照同类对象导出,这个是终极办法,估计可以达到2-10倍数据量压缩。也许可以速度上也提高数倍。(该办法正在研究)


  

 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值