/// <summary>
        /// Finds the relating group in IfcRelAssignsToGroup.
        /// </summary>
        /// <param name="ifcRelAssignsToGroup">The IfcRelAssignsToGroup handle.</param>
        /// <returns>The related group, or null if not found.</returns>
        static public IFCGroup ProcessRelatingGroup(IFCAnyHandle ifcRelAssignsToGroup)
        {
            if (!IFCAnyHandleUtil.IsSubTypeOf(ifcRelAssignsToGroup, IFCEntityType.IfcRelAssignsToGroup))
            {
                //LOG: ERROR: Couldn't find valid IfcRelAssignsToGroup.
                return(null);
            }

            IFCAnyHandle relatingGroup = IFCAnyHandleUtil.GetValidInstanceAttribute(ifcRelAssignsToGroup, "RelatingGroup");

            return(IFCGroup.ProcessIFCGroup(relatingGroup));
        }
        /// <summary>
        /// Finds the relating group in IfcRelAssignsToGroup.
        /// </summary>
        /// <param name="ifcRelAssignsToGroup">The IfcRelAssignsToGroup handle.</param>
        /// <returns>The related group, or null if not found.</returns>
        static public IFCGroup ProcessRelatingGroup(IFCAnyHandle ifcRelAssignsToGroup)
        {
            if (!IFCAnyHandleUtil.IsSubTypeOf(ifcRelAssignsToGroup, IFCEntityType.IfcRelAssignsToGroup))
            {
                //LOG: ERROR: Couldn't find valid IfcRelAssignsToGroup.
                return(null);
            }

            IFCAnyHandle relatingGroup = IFCAnyHandleUtil.GetInstanceAttribute(ifcRelAssignsToGroup, "RelatingGroup");

            // Receiving apps need to decide whether to post an error or not.
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(relatingGroup))
            {
                return(null);
            }

            IFCGroup group = IFCGroup.ProcessIFCGroup(relatingGroup);

            return(group);
        }