private static IfcMonitoringSubItem CreateMonitoringSubItem(IfcDSMSystem DSMsystem, int type, string name) { var model = DSMsystem.Model; IfcMonitoringSubItem monitoringSubItem; IfcMonitoringSubItemEnum monitoringSubItemType = (IfcMonitoringSubItemEnum)type; using (var txn = model.BeginTransaction("MonitoringItem Creation")) { monitoringSubItem = model.Instances.New <IfcMonitoringSubItem>(s => { s.Name = name; s.PredefinedType = monitoringSubItemType; }); //把监测子项目与监测项目连接起来 var rag = model.Instances.OfType <IfcRelAssignsToGroup>().FirstOrDefault(); if (rag == null) { var rs = model.Instances.New <IfcRelAssignsToGroup>(); rs.RelatingGroup = DSMsystem; rs.RelatedObjects.Add(monitoringSubItem); } else { rag.RelatedObjects.Add(monitoringSubItem); } txn.Commit(); } return(monitoringSubItem); }
static int Main() { //first create and initialise a model called DSMSyetem Console.WriteLine("Initialising the IFC Project...."); using (var model = CreateandInitModel("DSMSyetem")) { if (model != null) { IfcBuilding building = CreateBuilding(model, "Jiangya Dam"); IfcDSMSystem DSMsystem = CreateDSMSystem(model, "DSM System for Jiangya Dam"); IfcMonitoringItem dssystem1 = CreateMonitoringItem(DSMsystem, 0, "Displacement Monitoring"); IfcMonitoringItem dssystem2 = CreateMonitoringItem(DSMsystem, 1, "Seepage Monitoring"); //AddToBuilding(model, system, building); if (dssystem1 != null) { try { Console.WriteLine("Standard dssystem successfully created...."); //write the Ifc File model.SaveAs("DSMSystemIfc4.ifc", StorageType.Ifc); Console.WriteLine("DSMSystemIfc4.ifc has been successfully written"); } catch (Exception e) { Console.WriteLine("Failed to save DSMSystem.ifc"); Console.WriteLine(e.Message); } } } else { Console.WriteLine("Failed to initialise the model"); } } Console.WriteLine("Press any key to exit to view the IFC file...."); Console.ReadKey(); LaunchNotepad("DSMSystemIfc4.ifc"); return(0); }