項目需要加載BIM模型,我們是用Unity做開發的,搜索相關解決方案
通常將BIM數據清理提煉進行可視化應用需要花費2-3周的工作時間,而且BIM當中的原始數據不一定得到全部保留。
這其實是行業當中普遍存在的問題,除了處理BIM數據的時間,後期還需要更長的時間來做lightmap和材質的生成,大大壓縮了做創造性開發的時間。
按我的理解
BIM模型的特點是全面、準確,作爲程序的模型來說,會導致性能問題。
1.刪減:沒用的部分
2.合併:把細節按物體分組併合並;按建築結構合併(1樓和2樓分開)
3.效果:材質、顏色、透明、貼圖
4.LOD:
5.加載:AssetBundle加載
------------------------------------------------------------------------------------------------------------------------------
參考1:Unity Reflect:Revit與Unity實時數據交互
參考4:BIM中IFC介紹
參考1按我理解是Unity新出的一個產品,能夠直接讓Unity加載BIM,但是關鍵是,現在還沒出來,官方頁面也只有一個登記表格。
參考2是一個Tridify的插件,在AssetStore上能夠搜到的BIM相關的東西就它了,還是免費的。
它是官網加載並處理IFC文件(BIM中IFC介紹),然後在Unity中顯示。
插件本身是免費的,雲轉換服務是收費的。
參考3是在Revit中導出BV,然後在Unity中導入。
另外找了一些論文,是通過Revit二次開發,導出json,再導入unity。
基於BIM技術的管廊工程協同管理平臺開發研究_王思琦
基於WebGL的古建築BIM模型輕量化研究與實現_趙菲
基於Web建築模型輕量化的研究與實現_殷鑑飛
文章裏面之所以提到json是因爲webgl中支持這種格式,而且容易直接生成,而對於我們unity開發來說,其實把rvt轉成fbx導入unity是更合適的。
說實話我不覺得導出json能夠比IFC保存更多的信息。
----------------------------------------------------------------------------------------------------
用Revit打開rvt文件,導出fbx文件,只有一個fbx文件,放到unity裏面沒有材質。
參考:怎麼才能讓Revit場景導入到Unity而不會丟失材質和紋理?
------------------------------------------------------------------------------------------------------------
在unity論壇上也有人提問,BIM導入Unity的方案。
參考:Bim: Tridify Vs Pixyz Vs Native
Tridify:
Unity-Blog, December 6, 2018
Unity-Blog, April, 18, 2019
AssetStore
Website
PIXYZ:
Unity-Blog, December 14, 2018
UnityStore
Native:
Unity-Blog, November 13, 2018
Unity-Reflect
Native Revit To Unity to be expected in Fall of 2019.
參考:Unity PiXYZ Collaboration Lets Users Take BIM 3D
當前來說 Unity-Reflect是要再等等的。Tridify嘗試了,可以用,收費嘛,看項目需要,也不算貴,但是碰到轉換失敗的情況。
PIXYZ的話,發現居然可以。
下載插件 PiXYZ Plugin:https://download.csdn.net/download/realizz/11261761,淘寶上也有賣的,不知道是不是一樣的。
按說明導入並破解。
導入可以支持ifc格式,帶三維的autocad格式應該也支持的吧。
rvt格式,不一定,我們自己連續用的簡單rvt文件直接能導入,下載下來的複雜rvt文件則不支持。
---------------------------------------------------------------------------------------------------------------------------
PiXYZ Plugin導入導出還是有差異的。
Revit裏面:
Revit渲染:
IFC:有結構信息,顏色灰暗,門有透明,其他沒有透明
DXF、DWG:沒有透明,顏色不一致,沒有結構
--------------------------------------------------------------------------------------------------------------------------------
FBX(Revit to Unity):沒有結構,沒有材質,不透明。
總的效果來說,還是IFC的好,關鍵是有解構,材質什麼的手動處理一下好了。
在官網下載最新的PiXYZ4Unity-2019.1.1.11,用不起來,7天的測試liscence也裝不上。
--------------------------------------------------------------------------------------------------------------------------------
找到一個在線看IFC文件的網站:https://ifcwebserver.org/index.rb,
可以自己上傳IFC文件的
和導入Unity的效果差不多,Unity裏面右下角的門是透明的。
我在懷疑IFC標準,裏面是否包含完整的材質信息。
--------------------------------------------------------------------------------------------------------------------------------------------------
發現有個xBim的庫:https://github.com/xBimTeam
參考:xBIM 實戰03 使用WPF技術實現IFC模型的加載與瀏覽
這是一系列文章:https://www.cnblogs.com/SavionZhang/category/1474287.html
有點好奇,Unity裏面怎麼只有那麼兩個插件可以加載IFC呢,還都是收費的....
門有透明的。
-----------------------------------------------------------------------------------------------------------
Revit導出IFC時的選項
前面的IFC都是默認設置,沒改動過,也就是IFC2x3 Coordination View 2.0
把幾種格式都導出,然後打開,結果有些沒透明,有些有點怪,但沒有效果更好的。
另外試了3個上傳Tridify,不行,用完了免費次數了。
----------------------------------------------------------------------------------------------------------------------------
下載並安裝了3dmax2019了
FBX(Revit 導出FBX, 3dmax再導入FBX):沒有結構,顏色一致,大部分透明,有部分沒有透明。
3Dmax再導出FBX(比原來的FBX大),Unity加載FBX:顏色亂了,門沒有透明,屋頂沒有透明,窗戶有透明。
-----------------------------------------------------------------------------------------------------
發現實際上3dmax可以直接導入rvt文件的,導入後的效果和通過FBX導入的效果一樣........................,前面搞那些幹嘛呢,想不看效果,從技術上講,3dmax導入rvt文件,再導出fbx給unity就可以了。
另外好像3dmax2016不能導入rvt文件,應該說連續用的自己創建的模型可以導入,下載下來的複雜的不能導入,導入失敗。
導入rvt文件時有個合併選項,不合並的話每個物體都是獨立的分開的,需要手動合併,合併選項裏面沒有一個能夠按照IFC那種建築結構合併的。
--------------------------------------------------------------------------------------------------------
現在還存在的問題 1.3dmax導出後材質球混亂 2.需要人工手動分組
問題1再研究一下導入導出。
問題2可能需要做3dmax二次開發,讀取結構文件(IFC,或者Json),自動分組。實際上不應該啊,應該3dmax自身就提供這種選項的嘛,甚至應該3dmax能夠讀取IFC文件的。
--------------------------------------------------------------------------------------------------------------------