public static BbBuilding Create( string name, BbSite bbSite) { var b = new BbBuilding(name, bbSite); BbInstanceDB.AddToExport(b); return(b); }
public static BbFloor Create( string name, double elevation, BbBuilding building) { var f = new BbFloor(name, elevation, building); BbInstanceDB.AddToExport(f); return(f); }
public static bool Phase2Reader(string filename) { BbInstanceDB.Reset(); EarlyBindingInstanceModel.Reset(); if (!EarlyBindingInstanceModel.Read(RegisteredSchema.IFC2X3, filename)) { return(false); } BbHeaderSetting.Retrieve(); BbProject.Retrieve(); BbSite.Retrieve(); BbBuilding.Retrieve(); BbFloor.Retrieve(); return(false); }
BbFloor( string name, double elevation, BbBuilding building) { ObjectBbLocalPlacement = BbLocalPlacement3D.Create(building.ObjectBbLocalPlacement, BbHeaderSetting.Setting3D.DefaultBbPosition3D); IfcSpatialStructureElement = new IfcBuildingStorey { GlobalId = IfcGloballyUniqueId.NewGuid(), OwnerHistory = BbHeaderSetting.Setting3D.IfcOwnerHistory, Name = name, //Description = "", //ObjectType = "", ObjectPlacement = ObjectBbLocalPlacement.IfcLocalPlacement, //Representation = //LongName = "", CompositionType = IfcElementCompositionEnum.ELEMENT, Elevation = elevation, }; //building.AddFloor(this); BbBuilding = building; if (true) { IfcRelAggregates = new IfcRelAggregates() { GlobalId = IfcGloballyUniqueId.NewGuid(), OwnerHistory = BbHeaderSetting.Setting3D.IfcOwnerHistory, RelatingObject = BbBuilding.IfcSpatialStructureElement, RelatedObjects = new List <IfcObjectDefinition>() { IfcSpatialStructureElement }, }; } }
BbFloor( string name, double elevation, BbBuilding building) { ObjectBbLocalPlacement = BbLocalPlacement3D.Create(building.ObjectBbLocalPlacement, BbHeaderSetting.Setting3D.DefaultBbPosition3D); IfcSpatialStructureElement = new IfcBuildingStorey { GlobalId = IfcGloballyUniqueId.NewGuid(), OwnerHistory = BbHeaderSetting.Setting3D.IfcOwnerHistory, Name = name, //Description = "", //ObjectType = "", ObjectPlacement = ObjectBbLocalPlacement.IfcLocalPlacement, //Representation = //LongName = "", CompositionType = IfcElementCompositionEnum.ELEMENT, Elevation = elevation, }; //building.AddFloor(this); BbBuilding = building; if (true) { IfcRelAggregates = new IfcRelAggregates() { GlobalId = IfcGloballyUniqueId.NewGuid(), OwnerHistory = BbHeaderSetting.Setting3D.IfcOwnerHistory, RelatingObject = BbBuilding.IfcSpatialStructureElement, RelatedObjects = new List<IfcObjectDefinition>() { IfcSpatialStructureElement }, }; } }
public static BbFloor Create( string name, double elevation, BbBuilding building) { var f = new BbFloor(name, elevation, building); BbInstanceDB.AddToExport(f); return f; }
public static ICollection<BbFloor> Retrieve(BbBuilding building) { /* var ret = new List<BbFloor>(); if (!EarlyBindingInstanceModel.TheModel.DataByType.ContainsKey("IfcBuildingStorey")) return null; var collection = EarlyBindingInstanceModel.TheModel.DataByType["IfcBuildingStorey"].Values; foreach (var item in collection) { var buildingStorey = item as IfcBuildingStorey; if (buildingStorey == null) continue; foreach ( var floor in building.Floors) { if (floor.IfcSpatialStructureElement.EIN == buildingStorey.EIN) { var semFloor = new BbFloor { _ifcBuildingStorey = buildingStorey }; var floorItem = RetrieveSpatialComponents(semFloor); semFloor.SpatialComponents = floorItem; BbInstanceDB.Add(semFloor); ret.Add(semFloor); } } } return ret; */ var refed = EarlyBindingInstanceModel.GetReferencedEntities(building.IfcSpatialStructureElement.EIN); //if (refed.Count <= 0) throw new InvalidDataException(); var ret = new List<BbFloor>(); foreach (var p21Instance in refed) { if (p21Instance.Value.GetType() != typeof(IfcRelAggregates)) continue; var agg = p21Instance.Value as IfcRelAggregates; if (agg == null) continue; foreach (var instance in agg.RelatedObjects) { if (instance.GetType() != typeof(IfcBuildingStorey)) continue; var floor = instance as IfcBuildingStorey; if (floor == null) continue; var semFloor = new BbFloor(building, floor, agg); ret.Add(semFloor); BbInstanceDB.AddToExport(semFloor); } } return ret; }
protected BbFloor(BbBuilding building, IfcBuildingStorey floor, IfcRelAggregates ifcRelAggregates) { BbBuilding = building; IfcSpatialStructureElement = floor; IfcRelAggregates = ifcRelAggregates; }
public static ICollection <BbFloor> Retrieve(BbBuilding building) { /* * var ret = new List<BbFloor>(); * * if (!EarlyBindingInstanceModel.TheModel.DataByType.ContainsKey("IfcBuildingStorey")) return null; * var collection = EarlyBindingInstanceModel.TheModel.DataByType["IfcBuildingStorey"].Values; * foreach (var item in collection) * { * var buildingStorey = item as IfcBuildingStorey; * if (buildingStorey == null) continue; * foreach ( var floor in building.Floors) * { * if (floor.IfcSpatialStructureElement.EIN == buildingStorey.EIN) * { * var semFloor = new BbFloor { _ifcBuildingStorey = buildingStorey }; * var floorItem = RetrieveSpatialComponents(semFloor); * semFloor.SpatialComponents = floorItem; * * BbInstanceDB.Add(semFloor); * ret.Add(semFloor); * } * } * } * return ret; */ var refed = EarlyBindingInstanceModel.GetReferencedEntities(building.IfcSpatialStructureElement.EIN); //if (refed.Count <= 0) throw new InvalidDataException(); var ret = new List <BbFloor>(); foreach (var p21Instance in refed) { if (p21Instance.Value.GetType() != typeof(IfcRelAggregates)) { continue; } var agg = p21Instance.Value as IfcRelAggregates; if (agg == null) { continue; } foreach (var instance in agg.RelatedObjects) { if (instance.GetType() != typeof(IfcBuildingStorey)) { continue; } var floor = instance as IfcBuildingStorey; if (floor == null) { continue; } var semFloor = new BbFloor(building, floor, agg); ret.Add(semFloor); BbInstanceDB.AddToExport(semFloor); } } return(ret); }
public static bool ReadTestV02(string filename) { BbInstanceDB.Reset(); EarlyBindingInstanceModel.Reset(); if (!EarlyBindingInstanceModel.Read(RegisteredSchema.IFC2X3, filename)) { return(false); } BbHeaderSetting.Retrieve(); BbProject.Retrieve(); BbSite.Retrieve(); BbBuilding.Retrieve(); BbFloor.Retrieve(); // var sites = BbSite.Retrieve(project); // // // // // ////retrieve SEMs out of sites // var semBuildings = new List<BbBuilding>(); // foreach (var theSite in sites) // { // var buildings = BbBuilding.Retrieve(theSite); // foreach(var building in buildings) // { semBuildings.Add(building); } // } // // ////retrieve SEMs out of buildings // var semFloors = new List<BbFloor>(); // foreach (var theBuilding in semBuildings) // { // var floors = BbFloor.Retrieve(theBuilding); // foreach (var floor in floors) // { semFloors.Add(floor); } // } // // ////retrieve SEMs out of floors // var semAssemblies = new List<BbAssembly>(); // foreach (var theFloor in semFloors) // { // var assemblies = BbAssembly.Retrieve(theFloor); // foreach(var assem in assemblies) // { semAssemblies.Add(assem); } // } // // ////retrieve SEMs out of Assemblies // var semElements = new List<BbMainPiece>(); // foreach (var assembly in semAssemblies) // { // var semPaintFinishes = assembly.PaintFinishes; // //BbQuantityRequired // var elements = BbMainPiece.Retrieve(assembly);// all related SEMs are retrieved inside // foreach (var element in elements) // { semElements.Add(element); } // // Retrieve DiscreteAccessory // } // // ////retrieve SEMs out of MainPieces // foreach (var mainPiece in semElements) // { // var beamType = SemBeamSemType.Retrieve(mainPiece); // var material = BbMaterial.Retrieve(mainPiece); // var pFinishPatches = mainPiece.PaintFinishes; // all related SEMs are retrieved inside // var annotation = SemAnnotation.Retrieve(mainPiece); // var skewedEnds = BbSkewedEnd.Retrieve(mainPiece); // all related SEMs are retrieved inside // var semCutCopes = BbCutCope.Retrieve(mainPiece); // all related SEMs are retrieved inside // var semDrillHoles = BbDrillHoles.Retrieve(mainPiece); // all related SEMs are retrieved inside // var semSlottedHoles = BbSlottedHole.Retrieve(mainPiece); // all related SEMs are retrieved inside // // var welds = Weld.Retrieve(mainPiece); // foreach (var weld in welds) // { // var weldType = SemWeldSemType.Retrieve(weld); // Q1: check if SemWeldType exist or not before adding to DB // // Q2: semWeldType.DefinedElements inside SemWeldSemType // // var weldProp = BbWeldProperties.Retrieve(weld); // // var clipAngle = BbClipAngle.Retrieve(weld);// Q3: DiscreteAccessory vs. ClipAngle // /////////////////////////////// G1 //////// alternative solution for retrieving profile of clipAngle // var extGeometry = clipAngle.BbElementGeometry as BbExtrudedGeometry; // var profile = BbMainPiece.RetrieveProfile(extGeometry);// Q8: Can't put retrieveProfile in any other place + clipAngle // clipAngle.Profile = profile; // // var angleDrillHoles = BbDrillHoles.Retrieve(clipAngle); // var AngleSlottedHoles = BbSlottedHole.Retrieve(clipAngle); // // Q4 : add clipAngle to mainPiece to retrieve holes? retriving holes should be done seperately (mainPiece & clipAngle) now // // Q5 : inside MainPiece.RetrieveProfile // // Q6 : inside MainPiece, under extrudedGeometry // // Q7 : inside MainPiece, under profile // // Q9 : inside BbWeldProperties // // } // } // SemConnectedElements // BbCoordinate2D, SemCoordinate3D, BbDirection3D // BbSingleProperty ... //foreach (var assem in assemblies) //{ // Console.WriteLine(assem.ToString()); //} //return BbInstanceDB.Read(filename); return(false); }
public static ICollection<BbBuilding> Retrieve(BbSite site) { /* var ret = new List<BbBuilding>(); if (!EarlyBindingInstanceModel.TheModel.DataByType.ContainsKey("IfcBuilding")) return null; var collection = EarlyBindingInstanceModel.TheModel.DataByType["IfcBuilding"].Values; foreach (var item in collection) { var theItem = item as IfcBuilding; if (theItem == null) continue; foreach (var building in site.Buildings) { if (building.IfcSpatialStructureElement.EIN == theItem.EIN) { var semBuilding = new BbBuilding { _ifcBuilding = theItem }; var floor = RetrieveFloors(semBuilding); semBuilding.Floors = floor; BbInstanceDB.Add(semBuilding); ret.Add(semBuilding); } } } return ret; * */ var refed = EarlyBindingInstanceModel.GetReferencedEntities(site.IfcSpatialStructureElement.EIN); //if (refed.Count <= 0) throw new InvalidDataException(); var ret = new List<BbBuilding>(); foreach (var p21Instance in refed) { if (p21Instance.Value.GetType() != typeof(IfcRelAggregates)) continue; var agg = p21Instance.Value as IfcRelAggregates; if (agg == null) continue; foreach (var instance in agg.RelatedObjects) { if (instance.GetType() != typeof(IfcBuilding)) continue; var building = instance as IfcBuilding; if (building == null) continue; var semBuilding = new BbBuilding(site, building, agg); ret.Add(semBuilding); BbInstanceDB.AddToExport(semBuilding); } } return ret; }
public static BbBuilding Create( string name, BbSite bbSite) { var b = new BbBuilding(name, bbSite); BbInstanceDB.AddToExport(b); return b; }
public static ICollection <BbBuilding> Retrieve(BbSite site) { /* * var ret = new List<BbBuilding>(); * if (!EarlyBindingInstanceModel.TheModel.DataByType.ContainsKey("IfcBuilding")) return null; * var collection = EarlyBindingInstanceModel.TheModel.DataByType["IfcBuilding"].Values; * * foreach (var item in collection) * { * var theItem = item as IfcBuilding; * if (theItem == null) continue; * foreach (var building in site.Buildings) * { * if (building.IfcSpatialStructureElement.EIN == theItem.EIN) * { * var semBuilding = new BbBuilding { _ifcBuilding = theItem }; * var floor = RetrieveFloors(semBuilding); * semBuilding.Floors = floor; * * BbInstanceDB.Add(semBuilding); * ret.Add(semBuilding); * } * } * } * return ret; * */ var refed = EarlyBindingInstanceModel.GetReferencedEntities(site.IfcSpatialStructureElement.EIN); //if (refed.Count <= 0) throw new InvalidDataException(); var ret = new List <BbBuilding>(); foreach (var p21Instance in refed) { if (p21Instance.Value.GetType() != typeof(IfcRelAggregates)) { continue; } var agg = p21Instance.Value as IfcRelAggregates; if (agg == null) { continue; } foreach (var instance in agg.RelatedObjects) { if (instance.GetType() != typeof(IfcBuilding)) { continue; } var building = instance as IfcBuilding; if (building == null) { continue; } var semBuilding = new BbBuilding(site, building, agg); ret.Add(semBuilding); BbInstanceDB.AddToExport(semBuilding); } } return(ret); }