I have been looking for something like this but could not find it anywhere,
so I decided to write it by myself.
It is something very simple but for me also very usefull.
Basically if you select a group of objects and then shift select a control object, the script automatically creates a new enum attribute
on the control object that collects the visibility of all the selected objects.
Usefull, for instance, when you create proxy versions of 3D models and you want to switch to different resolutions of them.
It works with every kind of objects with visibility attribute, and you can create multiple show lists on the same control object.
usage: select a group of objects - shift select a control object - run the script - choose an attribute name and hit ok.