private void SetAllNull()
        {
            HasRangeProperties = false;
            RangeProperties    = new SLRangeProperties();

            DiscreteProperties = new List <uint>();

            HasGroupItems = false;
            GroupItems    = new SLGroupItems();

            ParentId = null;
            Base     = null;
        }
        internal SLGroupItems Clone()
        {
            var gis = new SLGroupItems();

            gis.Items = new List <SLSharedGroupItemsTypeIndexPair>();
            foreach (var pair in Items)
            {
                gis.Items.Add(new SLSharedGroupItemsTypeIndexPair(pair.Type, pair.Index));
            }

            gis.MissingItems = new List <SLMissingItem>();
            foreach (var mi in MissingItems)
            {
                gis.MissingItems.Add(mi.Clone());
            }

            gis.NumberItems = new List <SLNumberItem>();
            foreach (var ni in NumberItems)
            {
                gis.NumberItems.Add(ni.Clone());
            }

            gis.BooleanItems = new List <SLBooleanItem>();
            foreach (var bi in BooleanItems)
            {
                gis.BooleanItems.Add(bi.Clone());
            }

            gis.ErrorItems = new List <SLErrorItem>();
            foreach (var ei in ErrorItems)
            {
                gis.ErrorItems.Add(ei.Clone());
            }

            gis.StringItems = new List <SLStringItem>();
            foreach (var si in StringItems)
            {
                gis.StringItems.Add(si.Clone());
            }

            gis.DateTimeItems = new List <SLDateTimeItem>();
            foreach (var dti in DateTimeItems)
            {
                gis.DateTimeItems.Add(dti.Clone());
            }

            return(gis);
        }