// IIfcIndexedPolygonalFace indexFace;
 public XbimFaceBoundSet(IIfcIndexedPolygonalFace face, IIfcCartesianPointList3D coordinates, IItemSet <IfcPositiveInteger> pnIndex)
 {
     // indexFace = face;
     if (face is IIfcIndexedPolygonalFaceWithVoids)
     {
         var faceWithVoids = (IIfcIndexedPolygonalFaceWithVoids)face;
         faceBounds    = new XbimPolygonalFaceBound[faceWithVoids.InnerCoordIndices.Count + 1];
         faceBounds[0] = new XbimPolygonalFaceBound(faceWithVoids.CoordIndex, coordinates, pnIndex);
         for (int i = 0; i < faceWithVoids.InnerCoordIndices.Count; i++)
         {
             faceBounds[i + 1] = new XbimPolygonalFaceBound(faceWithVoids.InnerCoordIndices[i], coordinates, pnIndex);
         }
     }
     else //there will just be one
     {
         faceBounds = new[] { new XbimPolygonalFaceBound(face.CoordIndex, coordinates, pnIndex) };
     }
 }
 public XbimPolygonalFace(IIfcIndexedPolygonalFace polygonalFace, IIfcCartesianPointList3D coordinates, IItemSet <IfcPositiveInteger> pnIndex)
 {
     this.polygonalFace = polygonalFace;
     this.coordinates   = coordinates;
     this.pnIndex       = pnIndex;
 }