public void IfcShellBasedSurfaceModelTest()
        {
            using (var eventTrace = LoggerFactory.CreateEventTrace())
            {
                using (var m = new XbimModel())
                {
                    m.CreateFrom("SolidTestFiles\\16 - IfcShellBasedSurfaceModel.ifc", null, null, true, true);
                    var sbsm = m.Instances[38] as IfcShellBasedSurfaceModel;
                    Assert.IsTrue(sbsm != null, "No IfcShellBasedSurfaceModel found");
                    Assert.IsTrue(sbsm.SbsmBoundary.First is IfcOpenShell, "ifc OpenShell not found");

                    _xbimGeometryCreator.CreateSurfaceModel(sbsm);
                    Assert.IsTrue(eventTrace.Events.Count == 0, "Warning or Error events were raised");
                    //we should have no warnings
                }
            }
        }
예제 #2
0
        public void IIfcFaceBasedSurfaceModelAsSolid()
        {
            using (var eventTrace = LoggerFactory.CreateEventTrace())
            {
                using (var m = IfcStore.Open("SolidTestFiles\\FacebasedModelWithMissingFace.ifc"))
                {
                    var fbsm = m.Instances[154529] as IIfcFaceBasedSurfaceModel;
                    Assert.IsTrue(fbsm != null, "No IIfcFaceBasedSurfaceModel found");
                    int faceCount = fbsm.FbsmFaces.Count();

                    var surface = _xbimGeometryCreator.CreateSurfaceModel(fbsm);
                    var solid   = _xbimGeometryCreator.CreateSolidSet();
                    solid.Add(surface);
                    Assert.IsTrue(eventTrace.Events.Count == 0, "Warning or Error events were raised"); //we should have no warnings
                    Assert.IsTrue(solid.FirstOrDefault() != null);
                    IfcCsgTests.GeneralTest(solid.First);
                }
            }
        }
예제 #3
0
 public void TriangulatedFaceSetBasicTest()
 {
     using (var model = IfcStore.Open(@"Ifc4TestFiles\BeamTessellated.ifc"))
     {
         var faceSet = model.Instances.OfType <IfcTriangulatedFaceSet>().FirstOrDefault();
         Assert.IsNotNull(faceSet);
         var beam = _xbimGeometryCreator.CreateSurfaceModel(faceSet);
         Assert.IsTrue(Math.Abs(beam.BoundingBox.Volume - 20000000) < 1);
     }
 }