Ejemplo n.º 1
0
 private static string CreateJsonBIM(XbimModel model, string fileName)
 {
     try
     {
         var cobieFileName = Path.ChangeExtension(fileName, "json");//"semantics.json";
         using (var cobieFile = new FileStream(cobieFileName, FileMode.Create))
         {
             var helper   = new CoBieLiteHelper(model, "UniClass");
             var facility = helper.GetFacilities().FirstOrDefault();
             if (facility != null)
             {
                 using (var writer = new StreamWriter(cobieFile))
                 {
                     CoBieLiteHelper.WriteJson(writer, facility);
                     writer.Close();
                 }
             }
         }
         return(cobieFileName);
     }
     catch (Exception ex)
     {
         Log.Error("转换Cobie文件失败:" + ex.Message, ex);
         throw;
     }
 }
Ejemplo n.º 2
0
        public static void ConvertDpowToCobie(Stream input, CloudBlockBlob outputCobieBlob)
        {
            var temp = Path.GetTempFileName();

            try
            {
                var dpow      = PlanOfWork.Open(input);
                var facility  = new FacilityType();
                var exchanger = new XbimExchanger.DPoWToCOBieLite.DpoWtoCoBieLiteExchanger(dpow, facility);
                exchanger.Convert();

                using (var tw = File.CreateText(temp))
                {
                    CoBieLiteHelper.WriteJson(tw, facility);
                    tw.Close();
                }
                outputCobieBlob.UploadFromFile(temp, FileMode.Open);
            }
            finally
            {
                //tidy up
                if (File.Exists(temp))
                {
                    File.Delete(temp);
                }
            }
        }
Ejemplo n.º 3
0
 public void ConvertCoBieLiteToJson()
 {
     using (var m = new XbimModel())
     {
         var IfcTestFile = "2012-03-23-Duplex-Handover.ifc";
         // IfcTestFile = @"D:\Users\steve\xBIM\Test Models\Autodesk\002ALakesiderestaurant.ifc";
         var XbimTestFile = Path.ChangeExtension(IfcTestFile, "xbim");
         m.CreateFrom(IfcTestFile, XbimTestFile, null, true, true);
         var helper     = new CoBieLiteHelper(m, "UniClass");
         var facilities = helper.GetFacilities();
         foreach (var facilityType in facilities)
         {
             Assert.IsTrue(facilityType.FacilityDefaultLinearUnitSpecified);
             Assert.IsTrue(facilityType.FacilityDefaultAreaUnitSpecified);
             Assert.IsTrue(facilityType.FacilityDefaultVolumeUnitSpecified);
             CoBieLiteHelper.WriteJson(Console.Out, facilityType);
         }
     }
 }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            const string filename = "20200404CV.01.ifc";

            using (var model = IfcStore.Open(filename))
            {
                var context = new Xbim3DModelContext(model);
                context.CreateContext();

                var wexBimFilename = Path.ChangeExtension(filename, "wexBim");
                using (var wexBimfile = File.Create(wexBimFilename))
                {
                    using (var wexBimBinaryWriter = new BinaryWriter(wexBimfile))
                    {
                        model.SaveAsWexBim(wexBimBinaryWriter);
                        wexBimBinaryWriter.Close();
                    }
                    wexBimfile.Close();
                }

                string cobieFileName = Path.ChangeExtension(filename, "json");
                using (var cobieFile = new FileStream(cobieFileName, FileMode.Create))
                {
                    var helper = new CoBieLiteHelper(model, "UniClass");
                    var fac    = helper.GetFacilities().FirstOrDefault();
                    if (fac != null)
                    {
                        using (var writer = new StreamWriter(cobieFile))
                        {
                            CoBieLiteHelper.WriteJson(writer, fac);
                            writer.Close();
                        }
                    }
                }
                model.Close();
            }
        }
Ejemplo n.º 5
0
        public void ConvertCoBieLiteToJson()
        {
            var IfcTestFile = "2012-03-23-Duplex-Handover.ifc";

            using (var m = IfcStore.Open(IfcTestFile))
            {
                //IfcTestFile = @"D:\Users\steve\My Documents\DPoW\001 NBS Lakeside Restaurant 2014.ifc";
                var xbimTestFile = Path.ChangeExtension(IfcTestFile, "xbim");
                var jsonFile     = Path.ChangeExtension(IfcTestFile, "json");
                var helper       = new CoBieLiteHelper(m, "UniClass");
                var facilities   = helper.GetFacilities();
                foreach (var facilityType in facilities)
                {
                    Assert.IsTrue(facilityType.FacilityDefaultLinearUnitSpecified);
                    Assert.IsTrue(facilityType.FacilityDefaultAreaUnitSpecified);
                    Assert.IsTrue(facilityType.FacilityDefaultVolumeUnitSpecified);
                    using (var fs = new StreamWriter(jsonFile))
                    {
                        CoBieLiteHelper.WriteJson(fs, facilityType);
                        fs.Close();
                    }
                }
            }
        }
Ejemplo n.º 6
0
        public static void ConvertIfcToWexbimAndCobie(Stream input, CloudBlockBlob outputWexbimBlob, CloudBlockBlob outputCobieBlob, string inputExtension)
        {
            //temp files
            var fileName       = Path.GetTempPath() + Guid.NewGuid() + inputExtension;
            var xbimFileName   = Path.ChangeExtension(fileName, ".xBIM");
            var wexBimFileName = Path.ChangeExtension(fileName, ".wexBIM");
            var cobieFileName  = Path.ChangeExtension(fileName, ".json");

            try
            {
                using (var fileStream = File.OpenWrite(fileName))
                {
                    input.CopyTo(fileStream);
                    fileStream.Flush();
                    fileStream.Close();
                    //open the model and import
                    using (var model = new XbimModel())
                    {
                        model.CreateFrom(fileName, null, null, true);
                        var m3DModelContext = new Xbim3DModelContext(model);

                        using (var wexBimFile = new FileStream(wexBimFileName, FileMode.Create))
                        {
                            using (var bw = new BinaryWriter(wexBimFile))
                            {
                                m3DModelContext.CreateContext(XbimGeometryType.PolyhedronBinary);
                                m3DModelContext.Write(bw);
                                bw.Close();
                                wexBimFile.Close();
                                outputWexbimBlob.UploadFromFile(wexBimFileName, FileMode.Open);
                            }
                        }

                        using (var cobieFile = new FileStream(cobieFileName, FileMode.Create))
                        {
                            var helper   = new CoBieLiteHelper(model, "UniClass");
                            var facility = helper.GetFacilities().FirstOrDefault();
                            if (facility != null)
                            {
                                using (var writer = new StreamWriter(cobieFile))
                                {
                                    CoBieLiteHelper.WriteJson(writer, facility);
                                    writer.Close();
                                    outputCobieBlob.UploadFromFile(cobieFileName, FileMode.Open);
                                }
                            }
                        }

                        model.Close();
                    }
                }
            }
            finally
            {
                //tidy up
                if (File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
                if (File.Exists(xbimFileName))
                {
                    File.Delete(xbimFileName);
                }
                if (File.Exists(wexBimFileName))
                {
                    File.Delete(wexBimFileName);
                }
                if (File.Exists(cobieFileName))
                {
                    File.Delete(cobieFileName);
                }
            }
        }
Ejemplo n.º 7
0
        public static string ConvertToWexbim(string fileName, int roomId, bool createJson = false)
        {
            var wexBimFilename = Path.ChangeExtension(fileName, "wexbim");

            byte[] temp;
            using (ISelect select = new QQContext()) {
                temp = select.GetRoomModel
                       (
                    roomId
                       );
            }
            if (temp == null)
            {
                return(null);
            }

            File.WriteAllBytes
            (
                fileName,
                temp
            );

            using (var model = IfcStore.Open(fileName))
            {
                var context = new Xbim3DModelContext(model);
                context.CreateContext();

                using (var wexBiMfile = File.Create(wexBimFilename))
                {
                    using (var wexBimBinaryWriter = new BinaryWriter(wexBiMfile))
                    {
                        model.SaveAsWexBim(wexBimBinaryWriter);
                        wexBimBinaryWriter.Close();
                    }
                    wexBiMfile.Close();
                }

                if (createJson)
                {
                    var cobieFileName = Path.ChangeExtension
                                        (
                        fileName,
                        "json"
                                        );
                    using (var cobieFile = new FileStream
                                           (
                               cobieFileName,
                               FileMode.Create
                                           )) {
                        var helper = new CoBieLiteHelper
                                     (
                            model,
                            "UniClass"
                                     );
                        var facility = helper.GetFacilities()
                                       .FirstOrDefault();
                        if (facility != null)
                        {
                            using (var writer = new StreamWriter
                                                (
                                       cobieFile
                                                )) {
                                CoBieLiteHelper.WriteJson
                                (
                                    writer,
                                    facility
                                );
                                writer.Close();
                            }
                        }
                    }
                }
            }

            File.Delete(fileName);
            return(wexBimFilename);
        }