コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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());
            }
        }