/// <summary>
        /// Create an IFCSurfaceCurveSweptAreaSolid object from a handle of type IfcSurfaceCurveSweptAreaSolid.
        /// </summary>
        /// <param name="ifcSolid">The IFC handle.</param>
        /// <returns>The IFCSurfaceCurveSweptAreaSolid object.</returns>
        public static IFCSurfaceCurveSweptAreaSolid ProcessIFCSurfaceCurveSweptAreaSolid(IFCAnyHandle ifcSolid)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcSolid))
            {
                Importer.TheLog.LogNullError(IFCEntityType.IfcSurfaceCurveSweptAreaSolid);
                return(null);
            }

            IFCEntity solid;

            if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcSolid.StepId, out solid))
            {
                solid = new IFCSurfaceCurveSweptAreaSolid(ifcSolid);
            }
            return(solid as IFCSurfaceCurveSweptAreaSolid);
        }
        /// <summary>
        /// Create an IFCSolidModel object from a handle of type IfcSweptAreaSolid.
        /// </summary>
        /// <param name="ifcSweptAreaSolid">The IFC handle.</param>
        /// <returns>The IFCSweptAreaSolid object.</returns>
        public static IFCSweptAreaSolid ProcessIFCSweptAreaSolid(IFCAnyHandle ifcSweptAreaSolid)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcSweptAreaSolid))
            {
                Importer.TheLog.LogNullError(IFCEntityType.IfcSweptAreaSolid);
                return(null);
            }

            if (IFCAnyHandleUtil.IsSubTypeOf(ifcSweptAreaSolid, IFCEntityType.IfcExtrudedAreaSolid))
            {
                return(IFCExtrudedAreaSolid.ProcessIFCExtrudedAreaSolid(ifcSweptAreaSolid));
            }
            if (IFCAnyHandleUtil.IsSubTypeOf(ifcSweptAreaSolid, IFCEntityType.IfcRevolvedAreaSolid))
            {
                return(IFCRevolvedAreaSolid.ProcessIFCRevolvedAreaSolid(ifcSweptAreaSolid));
            }
            if (IFCAnyHandleUtil.IsSubTypeOf(ifcSweptAreaSolid, IFCEntityType.IfcSurfaceCurveSweptAreaSolid))
            {
                return(IFCSurfaceCurveSweptAreaSolid.ProcessIFCSurfaceCurveSweptAreaSolid(ifcSweptAreaSolid));
            }

            Importer.TheLog.LogUnhandledSubTypeError(ifcSweptAreaSolid, IFCEntityType.IfcSweptAreaSolid, true);
            return(null);
        }
        /// <summary>
        /// Create an IFCSurfaceCurveSweptAreaSolid object from a handle of type IfcSurfaceCurveSweptAreaSolid.
        /// </summary>
        /// <param name="ifcSolid">The IFC handle.</param>
        /// <returns>The IFCSurfaceCurveSweptAreaSolid object.</returns>
        public static IFCSurfaceCurveSweptAreaSolid ProcessIFCSurfaceCurveSweptAreaSolid(IFCAnyHandle ifcSolid)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcSolid))
            {
                IFCImportFile.TheLog.LogNullError(IFCEntityType.IfcSurfaceCurveSweptAreaSolid);
                return null;
            }

            IFCEntity solid;
            if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcSolid.StepId, out solid))
                solid = new IFCSurfaceCurveSweptAreaSolid(ifcSolid);
            return (solid as IFCSurfaceCurveSweptAreaSolid); 
        }