200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > BIM Revit 模型导出 1

BIM Revit 模型导出 1

时间:2024-01-29 10:31:11

相关推荐

BIM Revit 模型导出 1

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

最终的解决办法 是 写revit 插件进行手动导出。看似比较麻烦,实际revit导出插件步骤挺简单。revit的开发插件为c#, 一般使用 revit配合 vs或者 vs . 导出为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倍数据量压缩。也许可以速度上也提高数倍。(该办法正在研究)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。