zoukankan      html  css  js  c++  java
  • xBIM 综合使用案例与 ASP.NET MVC 集成(一)

    XbimWebUI是一个Javascript库,可用于BIM模型的Web表示。它使用WebGL并且独立于任何第三方WebGL框架。查看器的数据格式为WexBIM。不能直接加载IFC文件。

    一、将IFC文件转换成 WexBIM

            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();
                    }
    
                }
            }

     二、生成可需要的Json数据文件

     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.bat

    for %%f in (*.ifc) do (
    XbimConvert.exe %%f
    
    del "%%~nf.xbim"
    del "%%~nf.ifc.log"
    )
  • 相关阅读:
    Java 9 揭秘(14. HTTP/2 Client API)
    Java 9 揭秘(13. Collection API 更新)
    Java 9 揭秘(12. Process API 更新)
    JAVA数组与List相互转换
    linux下开启oracle服务和开启监听
    Centos7安装Redis
    Hibernate乐观锁无法Catch到org.hibernate.StaleObjectStateException
    Eclipse远程调试Tomcat
    Centos7 使用Docker搭建Oracle测试环境
    Maven安装Oracle驱动包到本地仓库
  • 原文地址:https://www.cnblogs.com/w2011/p/11040298.html
Copyright © 2011-2022 走看看