public static IIFCBooleanOperand ProcessIFCBooleanOperand(IFCAnyHandle ifcBooleanOperand)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcBooleanOperand))
            {
                //LOG: ERROR: IfcSolidModel is null or has no value
                return(null);
            }

            if (IFCAnyHandleUtil.IsValidSubTypeOf(ifcBooleanOperand, IFCEntityType.IfcBooleanResult))
            {
                return(IFCBooleanResult.ProcessIFCBooleanResult(ifcBooleanOperand));
            }
            else if (IFCAnyHandleUtil.IsValidSubTypeOf(ifcBooleanOperand, IFCEntityType.IfcHalfSpaceSolid))
            {
                return(IFCHalfSpaceSolid.ProcessIFCHalfSpaceSolid(ifcBooleanOperand));
            }
            else if (IFCAnyHandleUtil.IsValidSubTypeOf(ifcBooleanOperand, IFCEntityType.IfcSolidModel))
            {
                return(IFCSolidModel.ProcessIFCSolidModel(ifcBooleanOperand));
            }
            else if (IFCAnyHandleUtil.IsValidSubTypeOf(ifcBooleanOperand, IFCEntityType.IfcCsgPrimitive3D))
            {
                return(IFCCsgPrimitive3D.ProcessIFCCsgPrimitive3D(ifcBooleanOperand));
            }

            Importer.TheLog.LogUnhandledSubTypeError(ifcBooleanOperand, "IfcBooleanOperand", true);
            return(null);
        }
        /// <summary>
        /// Create an IFCHalfSpaceSolid object from a handle of type IfcHalfSpaceSolid.
        /// </summary>
        /// <param name="ifcHalfSpaceSolid">The IFC handle.</param>
        /// <returns>The IFCHalfSpaceSolid object.</returns>
        public static IFCHalfSpaceSolid ProcessIFCHalfSpaceSolid(IFCAnyHandle ifcHalfSpaceSolid)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcHalfSpaceSolid))
            {
                Importer.TheLog.LogNullError(IFCEntityType.IfcHalfSpaceSolid);
                return(null);
            }

            IFCEntity halfSpaceSolid;

            if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcHalfSpaceSolid.StepId, out halfSpaceSolid))
            {
                halfSpaceSolid = new IFCHalfSpaceSolid(ifcHalfSpaceSolid);
            }

            return(halfSpaceSolid as IFCHalfSpaceSolid);
        }
      /// <summary>
      /// Create an IFCHalfSpaceSolid object from a handle of type IfcHalfSpaceSolid.
      /// </summary>
      /// <param name="ifcHalfSpaceSolid">The IFC handle.</param>
      /// <returns>The IFCHalfSpaceSolid object.</returns>
      public static IFCHalfSpaceSolid ProcessIFCHalfSpaceSolid(IFCAnyHandle ifcHalfSpaceSolid)
      {
         if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcHalfSpaceSolid))
         {
            Importer.TheLog.LogNullError(IFCEntityType.IfcHalfSpaceSolid);
            return null;
         }

         IFCEntity halfSpaceSolid;
         if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcHalfSpaceSolid.StepId, out halfSpaceSolid))
            halfSpaceSolid = new IFCHalfSpaceSolid(ifcHalfSpaceSolid);

         return (halfSpaceSolid as IFCHalfSpaceSolid);
      }