//public IEnumerable<TIfcType> OfType<TIfcType>() where TIfcType : IPersistIfcEntity
        //{
        //    return cache.OfType<TIfcType>(false);
        //}

        /// <summary>
        ///   Filters the Ifc Instances based on their Type and the predicate
        /// </summary>
        /// <typeparam name = "TIfcType">Ifc Type to filter</typeparam>
        /// <param name = "expression">function to execute</param>
        /// <returns></returns>
        public IEnumerable <TIfcType> Where <TIfcType>(Expression <Func <TIfcType, bool> > expression) where TIfcType : IPersistIfcEntity
        {
            foreach (var item in cache.Where(expression))
            {
                yield return(item);
            }
        }