void HighlightBcData(IGH_Param param)
        {
            bool highlight   = param.Attributes.Selected && !_bcSelection.Contains(param);
            bool dehighlight = !param.Attributes.Selected && _bcSelection.Contains(param);

            foreach (var bcRef in param.VolatileData.AllData(true).OfType <Types.IGH_BcGeometricGoo>())
            {
                if (highlight)
                {
                    DatabaseUtils.Highlight(bcRef.Reference, true);
                }
                else if (dehighlight)
                {
                    DatabaseUtils.Highlight(bcRef.Reference, false);
                }
            }
            if (highlight)
            {
                _bcSelection.Add(param);
            }
            else if (dehighlight)
            {
                _bcSelection.Remove(param);
            }
        }
 void UnhighlightBcData()
 {
     foreach (var param in _bcSelection)
     {
         foreach (var bcRef in param.VolatileData.AllData(true).OfType <Types.IGH_BcGeometricGoo>())
         {
             DatabaseUtils.Highlight(bcRef.Reference, false);
         }
     }
     _bcSelection.Clear();
 }