public void EsentGeometryStoreReopenAddTest() { var db = Guid.NewGuid().ToString() + ".xbim"; var ifc = "TestFiles\\4walls1floorSite.ifc"; var p = new EsentModelProvider { DatabaseFileName = db }; var s = p.GetXbimSchemaVersion(ifc); using (var m = p.Open(ifc, s)) { p.Close(m); } using (var model = IfcStore.Open(db, accessMode: XbimDBAccess.ReadWrite)) { var geomStore = model.GeometryStore; using (var txn = geomStore.BeginInit()) { //ADD A GEOMETRY SHAPE var geomData = new XbimShapeGeometry() { IfcShapeLabel = 1, Format = XbimGeometryType.BoundingBox, GeometryHash = 0, LOD = XbimLOD.LOD100, ReferenceCount = 1, ShapeData = "2123", BoundingBox = XbimRect3D.Empty }; var shapeGeomLabel = txn.AddShapeGeometry(geomData); //ADD A SHAPE INSTANCE var shapeInstance = new XbimShapeInstance() { ShapeGeometryLabel = shapeGeomLabel, StyleLabel = 5, RepresentationContext = 50 }; var instanceId = txn.AddShapeInstance(shapeInstance, shapeGeomLabel); Assert.IsTrue(instanceId == 1); //ADD A REGIONCOLLECTION var regions = new XbimRegionCollection { ContextLabel = 50 }; var bb = new XbimRect3D(new XbimPoint3D(1, 1, 1), new XbimVector3D(10, 20, 30)); regions.Add(new XbimRegion("region1", bb, 100, XbimMatrix3D.Identity)); txn.AddRegions(regions); txn.Commit(); } model.SaveAs("SampleHouse4.xbim", StorageType.Xbim); model.Close(); } }
public void EsentGeometryStoreIsEmptyAfterReopen() { var db = Guid.NewGuid().ToString() + ".xbim"; var ifc = "TestFiles\\4walls1floorSite.ifc"; var p = new EsentModelProvider { DatabaseFileName = db }; var s = p.GetXbimSchemaVersion(ifc); using (p.Open(ifc, s)) { } using (var model = IfcStore.Open(db)) { Assert.IsTrue(model.GeometryStore.IsEmpty); } }
public void PersistedEsentTest() { var file = "4walls1floorSite.ifc"; var db = Guid.NewGuid().ToString() + ".xbim"; var provider = new EsentModelProvider { DatabaseFileName = db }; var schema = provider.GetXbimSchemaVersion(file); using (var model = provider.Open(file, schema)) { provider.Close(model); } using (var model = IfcStore.Open(db)) { Assert.IsTrue(model.Instances.Any()); } }