public void ConvertIfcCylinderToBRepTest() { using (var m = XbimModel.CreateTemporaryModel()) { using (var txn = m.BeginTransaction()) { var cylinder = IfcModelBuilder.MakeRightCircularCylinder(m, 10, 20); var solid = _xbimGeometryCreator.CreateSolid(cylinder); var brep = _xbimGeometryCreator.CreateFacetedBrep(m, solid); var solid2 = _xbimGeometryCreator.CreateSolidSet(brep); txn.Commit(); try { //Uncomment below to see the results in Ifc //m.SaveAs("brep.ifc", XbimStorageType.IFC); } catch (Exception) { Assert.IsTrue(false, "Failed to save the results to Ifc"); } Assert.IsTrue(solid2.Count == 1, "Expected one solid"); IfcCsgTests.GeneralTest(solid2.First); Assert.IsTrue(brep.Outer.CfsFaces.Count == solid2.First.Faces.Count, "Number of faces in round tripped solid is not the same"); } } }
public void IfcRevolvedArea_To_Sphere() { using (var eventTrace = LoggerFactory.CreateEventTrace()) { using (var m = new XbimModel()) { m.CreateFrom(@"SolidTestFiles\BIM Logo-Coordination View 2 - No M.ifc", null, null, true, true); var ss = m.Instances.OfType <IfcRevolvedAreaSolid>().FirstOrDefault(e => e.EntityLabel == 290); Assert.IsTrue(ss != null, "No Revolved Area found"); // m.ModelFactors.DeflectionAngle = 0.1; // m.ModelFactors.DeflectionTolerance = 0.1; var solid = _xbimGeometryCreator.CreateSolid(ss); Assert.IsTrue(eventTrace.Events.Count == 0); //no events should have been raised from this call var facetedSphere = _xbimGeometryCreator.CreateFacetedBrep(m, solid); var shell = _xbimGeometryCreator.CreateShell(facetedSphere.Outer); var xbimFacetedSphere = _xbimGeometryCreator.CreateSolidSet(facetedSphere); Assert.IsTrue(xbimFacetedSphere.Count == 1); //_xbimGeometryCreator.WriteTriangulation(Console.Out,solid, 0.001,0.5); } } }