private IfcFace AddFace(bool orientation, XbimFaceTypeEnum type) { _actualFaceType = type; _face = GetFace(type); _faces.Add_Reversible(_face); //if (_face.Bounds == null) _face.Bounds = new XbimSet<IfcFaceBound>(); IfcFaceBound faceBound = _document.Model.Instances.New<IfcFaceBound>(); _face.Bounds.Add_Reversible(faceBound); faceBound.Orientation = orientation; IfcPolyLoop polyLoop = _document.Model.Instances.New<IfcPolyLoop>(); faceBound.Bound = polyLoop; //if (polyLoop.Polygon == null) polyLoop.Polygon = new XbimListUnique<IfcCartesianPoint>(); _newPoints = polyLoop.Polygon; return _face; }
private IfcFace GetFace(XbimFaceTypeEnum type) { switch (type) { case XbimFaceTypeEnum.POLYLOOP_BOUNDED: return _document.Model.Instances.New<IfcFace>(); case XbimFaceTypeEnum.PLANE_SURFACE: return _document.Model.Instances.New<IfcFaceSurface>(); case XbimFaceTypeEnum.TRIANGLE: return _document.Model.Instances.New<IfcFace>(); default: return _document.Model.Instances.New<IfcFace>(); } }