XbimWebUI是一個Javascript庫,可用於BIM模型的Web表示。它使用WebGL而且獨立於任何第三方WebGL框架。查看器的數據格式爲WexBIM。不能直接加載IFC文件。json
const string fileName = @"LakesideRestaurant.ifc"; private void button1_Click(object sender, EventArgs e) { var wexBimFilename = Path.ChangeExtension(fileName, "wexBIM"); IfcStore.ModelProviderFactory.UseHeuristicModelProvider(); using (var model = IfcStore.Open(fileName)) { // 文件加載完成以後,進行轉換 var context = new Xbim3DModelContext(model); context.CreateContext(); // 建立幾何圖形 //wexbim 只能在WebUI項目中使用 using (var wexBimFile = File.Create(wexBimFilename)) { using (var wexBimBinaryWriter = new BinaryWriter(wexBimFile)) { model.SaveAsWexBim(wexBimBinaryWriter); wexBimBinaryWriter.Close(); } wexBimFile.Close(); } } }
XbimWebUi採用的屬性文件是JSON,這個在項目中因人而異,若是三維模型文件較少,能夠採用JSON形式,可是若是屬性文件比較大,建議採用Ajax+Api服務形式。框架
private void button2_Click(object sender, EventArgs e) { IfcStore.ModelProviderFactory.UseHeuristicModelProvider(); using (var model = IfcStore.Open(fileName)) { var facilities = new List<Facility>(); var exchanger = new IfcToCOBieLiteUkExchanger(model, facilities); facilities = exchanger.Convert(); //CObie僅用於在文件中保存單個建築信息,理論上只有一個Facility for (var i = 0; i < facilities.Count; i++) { var facility = facilities[i]; var file = $"facility_{i}.json"; facility.WriteJson(file); } } }
或者採用 xxx.batide
for %%f in (*.ifc) do ( XbimConvert.exe %%f del "%%~nf.xbim" del "%%~nf.ifc.log" )