/// <summary>
        /// Create space boundary.
        /// </summary>
        /// <param name="exporterIFC">
        /// The ExporterIFC object.
        /// </param>
        /// <param name="boundary">
        /// The space boundary object.
        /// </param>
        /// <param name="file">
        /// The IFC file.
        /// </param>
        /// <returns>
        /// True if processed successfully, false otherwise.
        /// </returns>
        static bool ProcessIFCSpaceBoundary(ExporterIFC exporterIFC, IFCSpaceBoundary boundary, IFCFile file)
        {
            string spaceBoundaryName = String.Empty;
            if (exporterIFC.SpaceBoundaryLevel == 1)
                spaceBoundaryName = "1stLevel";
            else if (exporterIFC.SpaceBoundaryLevel == 2)
                spaceBoundaryName = "2ndLevel";
            IFCLabel spaceBoundaryNameLabel = IFCLabel.Create(spaceBoundaryName);

            IFCAnyHandle spatialElemHnd = exporterIFC.FindSpatialElementHandle(boundary.SpatialElementId);
            if (!spatialElemHnd.HasValue)
                return false;

            IFCSpaceBoundaryType boundaryType = boundary.SpaceBoundaryType;
            IFCAnyHandle buildingElemHnd = IFCAnyHandle.Create();
            if (boundaryType == IFCSpaceBoundaryType.Physical)
            {
                buildingElemHnd = exporterIFC.FindSpaceBoundingElementHandle(boundary.BuildingElementId);
                if (!buildingElemHnd.HasValue)
                    return false;
            }

            file.CreateRelSpaceBoundary(IFCLabel.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(), spaceBoundaryNameLabel, IFCLabel.Create(),
               spatialElemHnd, buildingElemHnd, boundary.GetConnectionGeometry(), boundaryType, boundary.IsExternal);

            return true;
        }