/// <summary>
        /// Adds the new hierarchy group by using the EntityClassType.
        /// </summary>
        /// <returns>The hierarchy group.</returns>
        /// <param name="_type">Type.</param>
        public HierarchyGroupObject AddHierarchyGroup(EntityClassType _type)
        {
            HierarchyGroupObject _group = null;

            if (GetHierarchyGroup(_type) == null)
            {
                _group = new HierarchyGroupObject(_type);
                HierarchyGroups.Add(_group);
            }
            return(_group);
        }
        public HierarchyGroupObject GetHierarchyGroup(EntityClassType _type, bool _forced)
        {
            HierarchyGroupObject _group = GetHierarchyGroup(_type);

            if (_group == null && _forced)
            {
                _group = new HierarchyGroupObject(_type);
                HierarchyGroups.Add(_group);
            }
            return(_group);
        }
        public void ResetHierarchyGroups()
        {
            foreach (HierarchyGroupObject _group in HierarchyGroups)
            {
                if (_group != null)
                {
                    _group.Reset();
                }
            }

            HierarchyGroups.Clear();
        }
        public HierarchyGroupObject AddHierarchyGroup(EntityClassType _type, bool _enabled)
        {
            HierarchyGroupObject _group = null;

            if (GetHierarchyGroup(_type) == null)
            {
                _group         = new HierarchyGroupObject(_type);
                _group.Enabled = _enabled;
                HierarchyGroups.Add(_group);
            }
            return(_group);
        }