/// <summary>
        /// Create an IFCRationalBSplineSurfaceWithKnots object from the handle of type IfcRationalBSplineSurfaceWithKnots
        /// </summary>
        /// <param name="IFCRationalBSplineSurfaceWithKnots">The IFC handle</param>
        /// <returns>The IFCRationalBSplineSurfaceWithKnots object</returns>
        public static IFCRationalBSplineSurfaceWithKnots ProcessIFCRationalBSplineSurfaceWithKnots(IFCAnyHandle ifcRationalBSplineSurfaceWithKnots)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcRationalBSplineSurfaceWithKnots))
            {
                Importer.TheLog.LogNullError(IFCEntityType.IfcRationalBSplineSurfaceWithKnots);
                return(null);
            }

            IFCEntity rationalBSplineSurfaceWithKnots = null;

            if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcRationalBSplineSurfaceWithKnots.StepId, out rationalBSplineSurfaceWithKnots))
            {
                rationalBSplineSurfaceWithKnots = new IFCRationalBSplineSurfaceWithKnots(ifcRationalBSplineSurfaceWithKnots);
            }

            return(rationalBSplineSurfaceWithKnots as IFCRationalBSplineSurfaceWithKnots);
        }
        /// <summary>
        /// Create an IFCBSplineSurfaceWithKnots object from the handle of type IfcBSplineSurfaceWithKnots
        /// </summary>
        /// <param name="ifcBSplineSurfaceWithKnots">The IFC handle</param>
        /// <returns>The IFCBSplineSurfaceWithKnots object</returns>
        public static IFCBSplineSurfaceWithKnots ProcessIFCBSplineSurfaceWithKnots(IFCAnyHandle ifcBSplineSurfaceWithKnots)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcBSplineSurfaceWithKnots))
            {
                Importer.TheLog.LogNullError(IFCEntityType.IfcBSplineSurfaceWithKnots);
                return(null);
            }

            IFCEntity bSplineSurface = null;

            if (IFCImportFile.TheFile.EntityMap.TryGetValue(ifcBSplineSurfaceWithKnots.StepId, out bSplineSurface))
            {
                return(bSplineSurface as IFCBSplineSurfaceWithKnots);
            }

            if (IFCAnyHandleUtil.IsSubTypeOf(ifcBSplineSurfaceWithKnots, IFCEntityType.IfcRationalBSplineSurfaceWithKnots))
            {
                return(IFCRationalBSplineSurfaceWithKnots.ProcessIFCRationalBSplineSurfaceWithKnots(ifcBSplineSurfaceWithKnots));
            }

            return(new IFCBSplineSurfaceWithKnots(ifcBSplineSurfaceWithKnots));
        }