public void ConvertDPoWToCOBieLite() { //var pow = PlanOfWork.OpenJson("NewtownHighSchool.new.dpow"); var pow = PlanOfWork.OpenJson("013-Lakeside_Restaurant.dpow"); const string dir = "..\\..\\COBieLiteUK"; if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); var outputs = new List<string>(); string msg; foreach (var stage in pow.ProjectStages) { var facility = new Xbim.COBieLiteUK.Facility(); var exchanger = new DPoWToCOBieLiteUKExchanger(pow, facility, stage); exchanger.Convert(); var output = Path.Combine(dir, stage.Name + ".cobieliteUK.json"); var xls = Path.Combine(dir, stage.Name + ".xlsx"); outputs.Add(output); facility.WriteJson(output, true); facility.WriteCobie(xls, out msg); } //check all result files exist foreach (var output in outputs) { Assert.IsTrue(File.Exists(output)); } //try to reload to make sure serialization and deserilization works in both directions foreach (var output in outputs) { var facility = Xbim.COBieLiteUK.Facility.ReadJson(output); } }
public void ConvertDPoWToAll() { var pow = PlanOfWork.OpenJson("001-Lakeside_Restaurant.dpow"); const string dir = "..\\..\\COBieLiteUK"; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } string msg; foreach (var stage in pow.ProjectStages) { var json = Path.Combine(dir, stage.Name + ".cobie.json"); var xlsx = Path.Combine(dir, stage.Name + ".xlsx"); var ifc = Path.Combine(dir, stage.Name + ".ifc"); var facility = new Xbim.COBieLiteUK.Facility(); var cobieExchanger = new DPoWToCOBieLiteUKExchanger(pow, facility, stage); cobieExchanger.Convert(DateTime.Now); facility.WriteJson(json, true); facility.WriteCobie(xlsx, out msg); //using (var ifcModel = XbimModel.CreateTemporaryModel()) //{ // ifcModel.Initialise("Xbim Tester", "XbimTeam", "Xbim.Exchanger", "Xbim Development Team", "3.0"); // using (var txn = ifcModel.BeginTransaction("Conversion from COBie")) // { // ifcModel.Header.FileName.Name = stage.Name; // ifcModel.ReloadModelFactors(); // var ifcExchanger = new XbimExchanger.COBieLiteUkToIfc.CoBieLiteUkToIfcExchanger(facility, ifcModel); // ifcExchanger.Convert(); // txn.Commit(); // } // ifcModel.SaveAs(ifc, XbimStorageType.IFC); // ifcModel.Close(); //} } }
public void ConvertDPoWToCOBieLite() { //var pow = PlanOfWork.OpenJson("NewtownHighSchool.new.dpow"); var pow = PlanOfWork.OpenJson("013-Lakeside_Restaurant.dpow"); const string dir = "..\\..\\COBieLiteUK"; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } var outputs = new List <string>(); string msg; foreach (var stage in pow.ProjectStages) { var facility = new Xbim.COBieLiteUK.Facility(); var exchanger = new DPoWToCOBieLiteUKExchanger(pow, facility, stage); exchanger.Convert(); var output = Path.Combine(dir, stage.Name + ".cobieliteUK.json"); var xls = Path.Combine(dir, stage.Name + ".xlsx"); outputs.Add(output); facility.WriteJson(output, true); facility.WriteCobie(xls, out msg); } //check all result files exist foreach (var output in outputs) { Assert.IsTrue(File.Exists(output)); } //try to reload to make sure serialization and deserilization works in both directions foreach (var output in outputs) { var facility = Xbim.COBieLiteUK.Facility.ReadJson(output); } }
public void ConvertDPoWToAll() { var pow = PlanOfWork.OpenJson("001-Lakeside_Restaurant.dpow"); const string dir = "..\\..\\COBieLiteUK"; if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); string msg; foreach (var stage in pow.ProjectStages) { var json = Path.Combine(dir, stage.Name + ".cobie.json"); var xlsx = Path.Combine(dir, stage.Name + ".xlsx"); var ifc = Path.Combine(dir, stage.Name + ".ifc"); var facility = new Xbim.COBieLiteUK.Facility(); var cobieExchanger = new DPoWToCOBieLiteUKExchanger(pow, facility, stage); cobieExchanger.Convert(DateTime.Now); facility.WriteJson(json, true); facility.WriteCobie(xlsx, out msg); //using (var ifcModel = XbimModel.CreateTemporaryModel()) //{ // ifcModel.Initialise("Xbim Tester", "XbimTeam", "Xbim.Exchanger", "Xbim Development Team", "3.0"); // using (var txn = ifcModel.BeginTransaction("Conversion from COBie")) // { // ifcModel.Header.FileName.Name = stage.Name; // ifcModel.ReloadModelFactors(); // var ifcExchanger = new XbimExchanger.COBieLiteUkToIfc.CoBieLiteUkToIfcExchanger(facility, ifcModel); // ifcExchanger.Convert(); // txn.Commit(); // } // ifcModel.SaveAs(ifc, XbimStorageType.IFC); // ifcModel.Close(); //} } }
/// <summary> /// Generate a JSON File /// </summary> /// <param name="parameters">Params</param> /// <param name="fileName">Root file name</param> /// <param name="facility">Facility</param> /// <returns>file name</returns> private string CreateJsonFile(Params parameters, string fileName, Facility facility) { var jsonName = Path.ChangeExtension(fileName, ".json"); Worker.ReportProgress(0, string.Format("Creating file: {0}", jsonName)); facility.ReportProgress.Progress = Worker.ReportProgress; facility.WriteJson(jsonName, true); return jsonName; }
public void AttributeTest() { var facility = new Facility { Attributes = new List<Attribute> { new Attribute { Name = "Boolean", Value = new BooleanAttributeValue {Value = true} }, new Attribute { Name = "DateTime", Value = new DateTimeAttributeValue {Value = DateTime.Today} }, new Attribute { Name = "Decimal", Value = new DecimalAttributeValue {Value = 10.0} }, new Attribute { Name = "Integer", Value = new IntegerAttributeValue {Value = 5} }, new Attribute { Name = "String", Value = new StringAttributeValue {Value = "A"} }, new Attribute { Name = "Null" } } }; const string file = "attribute_test.json"; //write to file and minified file (attribute type names minified) facility.WriteJson(file); var f2 = Facility.ReadJson(file); foreach (var f in new []{f2}) { Assert.AreEqual((f.Attributes.FirstOrDefault(a => a.Name == "Boolean").Value as BooleanAttributeValue).Value, true); Assert.AreEqual((f.Attributes.FirstOrDefault(a => a.Name == "DateTime").Value as DateTimeAttributeValue).Value, DateTime.Today); Assert.AreEqual((f.Attributes.FirstOrDefault(a => a.Name == "Decimal").Value as DecimalAttributeValue).Value ?? 0, 10.0, 0.0000001); Assert.AreEqual((f.Attributes.FirstOrDefault(a => a.Name == "Integer").Value as IntegerAttributeValue).Value, 5); Assert.AreEqual((f.Attributes.FirstOrDefault(a => a.Name == "String").Value as StringAttributeValue).Value, "A"); Assert.IsNull(f.Attributes.FirstOrDefault(a => a.Name == "Null").Value); } }
public void CoBieLiteUkCreation() { var facility = new Facility { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Categories = new List<Category> { new Category {Code = "Bd_34_54", Description = "Schools", Classification = "Sample"} }, ExternalId = Guid.NewGuid().ToString(), AreaUnits = AreaUnit.squaremeters, CurrencyUnit = CurrencyUnit.GBP, LinearUnits = LinearUnit.millimeters, VolumeUnits = VolumeUnit.cubicmeters, AreaMeasurement = "NRM", Phase = "Phase A", Description = "New facility description", Name = "Ellison Building", Project = new Project { ExternalId = Guid.NewGuid().ToString(), Name = "Project A" }, Site = new Site { ExternalId = Guid.NewGuid().ToString(), Name = "Site A" }, Zones = new List<Zone> { new Zone { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, ExternalId = Guid.NewGuid().ToString(), Name = "Zone A", Categories = new List<Category> {new Category {Code = "45.789.78", Classification = "Sample"}}, Description = "Description of the zone A", Spaces = new List<SpaceKey> { new SpaceKey {Name = "A001 - Front Room"}, new SpaceKey {Name = "A002 - Living Room"}, new SpaceKey {Name = "A003 - Bedroom"}, } } }, Contacts = new List<Contact> { new Contact { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Categories = new List<Category> {new Category {Code = "12.45.56", Classification = "Sample"}}, FamilyName = "Martin", Email = "*****@*****.**", GivenName = "Cerny" }, new Contact { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Categories = new List<Category> {new Category {Code = "12.45.56", Classification = "Sample"}}, FamilyName = "Peter", Email = "*****@*****.**", GivenName = "Pan" }, new Contact { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Categories = new List<Category> {new Category {Code = "12.45.56", Classification = "Sample"}}, FamilyName = "Paul", Email = "*****@*****.**", GivenName = "McCartney" } }, Floors = new List<Floor> { new Floor { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Elevation = 15000, Height = 3400, Spaces = new List<Space> { new Space { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Categories = new List<Category> {new Category {Code = "Sp_02_78_98", Classification = "Sample"}}, Description = "First front room in COBieLiteUK ever", Name = "A001 - Front Room", UsableHeight = 3500, NetArea = 6 }, new Space { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Categories = new List<Category> {new Category {Code = "Sp_02_78_98", Classification = "Sample"}}, Description = "First living room in COBieLiteUK ever", Name = "A002 - Living Room", UsableHeight = 4200, NetArea = 55 }, new Space { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Categories = new List<Category> {new Category {Code = "Sp_02_78_98", Classification = "Sample"}}, Description = "First bedroom in COBieLiteUK ever", Name = "A003 - Bedroom", UsableHeight = 4100, NetArea = 25 } } } }, AssetTypes = new List<AssetType> { new AssetType { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Name = "Brick layered wall", Assets = new List<Asset> { new Asset { CreatedOn = DateTime.Now, Name = "120mm partition wall", Representations = new List<Representation> { new Representation { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, X = 0, Y = 0, Z = 0, SizeX = 1000, SizeY = 2000, SizeZ = 200, Name = Guid.NewGuid().ToString() } }, CreatedBy = new ContactKey {Email = "*****@*****.**"} }, new Asset { CreatedOn = DateTime.Now, Name = "180mm partition wall", Representations = new List<Representation> { new Representation { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, X = 0, Y = 0, Z = 0, SizeX = 1000, SizeY = 2000, SizeZ = 200, Name = Guid.NewGuid().ToString() } }, CreatedBy = new ContactKey {Email = "*****@*****.**"} }, new Asset { CreatedOn = DateTime.Now, Name = "350mm external brick wall", Representations = new List<Representation> { new Representation { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, X = 0, Y = 0, Z = 0, SizeX = 1000, SizeY = 2000, SizeZ = 200, Name = Guid.NewGuid().ToString() } }, CreatedBy = new ContactKey {Email = "*****@*****.**"} } } } }, Attributes = new List<Attribute> { new Attribute { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Name = "String attribute", Value = new StringAttributeValue {Value = "Almukantarant"}, Categories = new List<Category> {new Category {Code = "Submitted", Classification = "Sample"}}, }, new Attribute { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Name = "Boolean attribute", Value = new BooleanAttributeValue {Value = true}, Categories = new List<Category> {new Category {Code = "Submitted", Classification = "Sample"}}, }, new Attribute { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Name = "Datetime attribute", Value = new DateTimeAttributeValue {Value = DateTime.Now}, Categories = new List<Category> {new Category {Code = "Submitted", Classification = "Sample"}}, }, new Attribute { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Name = "Decimal attribute", Value = new DecimalAttributeValue {Value = 256.2}, Categories = new List<Category> {new Category {Code = "Submitted", Classification = "Sample"}}, }, new Attribute { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Name = "Integer attribute", Value = new IntegerAttributeValue {Value = 7}, Categories = new List<Category> {new Category {Code = "Submitted", Classification = "Sample"}}, }, new Attribute { CreatedOn = DateTime.Now, CreatedBy = new ContactKey {Email = "*****@*****.**"}, Name = "Null attribute" } }, Stages = new List<ProjectStage>(new[] { new ProjectStage { Name = "Stage 0", CreatedOn = DateTime.Now, Start = DateTime.Now.AddDays(5), End = DateTime.Now.AddDays(10), CreatedBy = new ContactKey {Email = "*****@*****.**"} }, new ProjectStage { Name = "Stage 1", CreatedOn = DateTime.Now, Start = DateTime.Now.AddDays(10), End = DateTime.Now.AddDays(20), CreatedBy = new ContactKey {Email = "*****@*****.**"} }, new ProjectStage { Name = "Stage 2", CreatedOn = DateTime.Now, Start = DateTime.Now.AddDays(20), End = DateTime.Now.AddDays(110), CreatedBy = new ContactKey {Email = "*****@*****.**"} }, new ProjectStage { Name = "Stage 3", CreatedOn = DateTime.Now, Start = DateTime.Now.AddDays(110), End = DateTime.Now.AddDays(300), CreatedBy = new ContactKey {Email = "*****@*****.**"} }, }) }; //save model to file to check it string msg; const string xmlFile = "facility.cobielite.xml"; const string jsonFile = "facility.cobielite.json"; const string xlsxFile = "facility.cobielite.xlsx"; facility.WriteXml(xmlFile, true); facility.WriteJson(jsonFile, true); facility.WriteCobie(xlsxFile, out msg); var facility2 = Facility.ReadXml(xmlFile); var facility3 = Facility.ReadJson(jsonFile); }