public XbimGridCollection(IEnumerable <IIfcGrid> ifcGrids, IXbimGeometryEngine engine) { foreach (var ifcGrid in ifcGrids) { Add(new XbimGrid(ifcGrid, engine)); } }
public XbimGrid(IIfcGrid ifcGrid, IXbimGeometryEngine engine) { _ifcGrid = ifcGrid; foreach (var gridAxis in ifcGrid.UAxes) { IXbimCurve curve = engine.CreateCurve(gridAxis.AxisCurve); _axis.Add(gridAxis, curve); } foreach (var gridAxis in ifcGrid.VAxes) { IXbimCurve curve = engine.CreateCurve(gridAxis.AxisCurve); _axis.Add(gridAxis, curve); } foreach (var gridAxis in ifcGrid.WAxes) { IXbimCurve curve = engine.CreateCurve(gridAxis.AxisCurve); _axis.Add(gridAxis, curve); } }
public XbimGeometryEngine() { // Warn if runtime for Engine is not present XbimPrerequisitesValidator.Validate(); var conventions = new XbimArchitectureConventions(); // understands the process we run under string assemblyName = conventions.ModuleName + conventions.Suffix; try { var ass = Assembly.Load(assemblyName); var oh = Activator.CreateInstance(ass.FullName, "Xbim.Geometry.XbimGeometryCreator"); _engine = oh.Unwrap() as IXbimGeometryEngine; } catch (Exception e) { throw e; } }
public XbimGeometryEngine(ILogger <XbimGeometryEngine> logger) { // Warn if runtime for Engine is not present, this is not necessary any more as we are net472 //XbimPrerequisitesValidator.Validate(); _logger = logger ?? XbimLogging.CreateLogger <XbimGeometryEngine>(); var conventions = new XbimArchitectureConventions(); // understands the process we run under string assemblyName = $"{conventions.ModuleName}{conventions.Suffix}"; // Fixed error "simple name should be the same as resolved assembly", eirik 1/15/2021 _logger.LogDebug("Loading {assemblyName}", assemblyName); try { var ass = Assembly.Load(assemblyName); _logger.LogTrace("Loaded {fullName} from {codebase}", ass.GetName().FullName, ass.CodeBase); var t = ass.GetType("Xbim.Geometry.XbimGeometryCreator"); var obj = Activator.CreateInstance(t); _logger.LogTrace("Created Instance of {fullName}", obj.GetType().FullName); if (obj == null) { throw new Exception("Failed to create Geometry Engine"); } _engine = obj as IXbimGeometryEngine; if (_engine == null) { throw new Exception("Failed to cast Geometry Engine to IXbimGeometryEngine"); } _logger.LogDebug("XbimGeometryEngine constructed successfully"); } catch (Exception e) { _logger.LogError(0, e, "Failed to construct XbimGeometryEngine"); throw new FileLoadException($"Failed to load Xbim.Geometry.Engine.dll{conventions.Suffix}", e); } }
static public void Cleanup() { loggerFactory = null; geomEngine = null; logger = null; }
static public void Initialise(TestContext context) { loggerFactory = new LoggerFactory().AddConsole(LogLevel.Trace); geomEngine = new XbimGeometryEngine(); logger = loggerFactory.CreateLogger <Ifc4GeometryTests>(); }
private static IXbimSolidSet CreateSolids(this IIfcGeometricRepresentationItem repItem, IXbimGeometryEngine engine, ILogger logger) { var sSet = engine.CreateSolidSet(); var sweptArea = repItem as IIfcSweptAreaSolid; if (sweptArea != null && (sweptArea.SweptArea is IIfcCompositeProfileDef)) { //this is necessary as composite profile definitions produce multiple solid return(engine.CreateSolidSet(sweptArea, logger)); } else if (repItem is IIfcSweptAreaSolid) { sSet.Add(engine.CreateSolid(repItem as IIfcSweptAreaSolid, logger)); return(sSet); } else if (repItem is IIfcSweptDiskSolid) { sSet.Add(engine.CreateSolid(repItem as IIfcSweptDiskSolid, logger)); return(sSet); } else if (repItem is IIfcBooleanResult) { return(engine.CreateSolidSet(repItem as IIfcBooleanResult, logger)); } else if (repItem is IIfcBooleanClippingResult) { return(engine.CreateSolidSet(repItem as IIfcBooleanClippingResult, logger)); } else if (repItem is IIfcCsgSolid) { return(engine.CreateSolidSet(repItem as IIfcCsgSolid, logger)); } else if (repItem is IIfcFacetedBrep) { return(engine.CreateSolidSet(repItem as IIfcFacetedBrep, logger)); } else if (repItem is IIfcTriangulatedFaceSet) { return(engine.CreateSolidSet(repItem as IIfcTriangulatedFaceSet)); } else if (repItem is IIfcShellBasedSurfaceModel) { return(engine.CreateSolidSet(repItem as IIfcShellBasedSurfaceModel)); } else if (repItem is IIfcFaceBasedSurfaceModel) { return(engine.CreateSolidSet(repItem as IIfcFaceBasedSurfaceModel)); } else if (repItem is IIfcBoundingBox) { sSet.Add(engine.CreateSolid(repItem as IIfcBoundingBox, logger)); return(sSet); } else if (repItem is IIfcSectionedSpine) { sSet.Add(engine.CreateSolid(repItem as IIfcSectionedSpine, logger)); return(sSet); } else if (repItem is IIfcCsgPrimitive3D) { sSet.Add(engine.CreateSolid(repItem as IIfcCsgPrimitive3D, logger)); return(sSet); } else if (repItem is IIfcAdvancedBrep) { sSet.Add(engine.CreateSolid(repItem as IIfcAdvancedBrep, logger)); return(sSet); } else { return(null); } }
static public void Cleanup() { geomEngine = null; }
static public void Initialise(TestContext context) { geomEngine = new XbimGeometryEngine(); }