public void AddValue(Parameter param)
        {
            switch (param.StorageType)
            {
            case StorageType.ElementId:
                ElementId eId = param.AsElementId();
                if (eId != ElementId.InvalidElementId && !ElementIDValues.Contains(eId))
                {
                    ElementIDValues.Add(eId);
                }
                break;

            case StorageType.Double:
                double dbl = param.AsDouble();
                if (!DoubleValues.Contains(dbl))
                {
                    DoubleValues.Add(dbl);
                }
                break;

            case StorageType.Integer:
                int intVal = param.AsInteger();
                if (!IntValues.Contains(intVal))
                {
                    IntValues.Add(intVal);
                }
                break;

            case StorageType.String:
                string str = param.AsString();
                if (!string.IsNullOrEmpty(str) && !StringValues.Contains(str))
                {
                    StringValues.Add(str);
                }
                break;
            }
        }