I believe the ControlDefinition mentioned above is the one seen in the following location...
While working within a part or assembly, if you go to the View tab, then you will see a control called Object Visibility on the Visibility panel. It has a drop-down arrow beside it. When you click that down arrow, you will see a list of object types that you can turn on or off, by checking or un-checking checkboxes beside them. At the very top of that list is All Workfeatures. Executing that command likely does the same as toggling that control on/off. This appears to be a 'per document' type of setting, instead of a per feature setting, or an application wide setting, because I can have two different parts open in different document tabs (that have nothing to do with each other), and can have some WorkPlanes showing in both. Then turn that setting off while one part is active on my screen, then when I go to the other part (and make it active), those settings are still on within that control drop-down, and its WorkPlanes are still visible. I am not sure if that setting (the state of that control) is saved per document or not though, since it is not actually applied directly to the individual instances. If the WorkPlane instances already have their visibility turned off individually, then turning that ribbon control on does not turn on the visibility of all my work features...only the ones that were already set to be visible individually. So, that ribbon control is only good for temporarily hiding the work features that have not already been hidden individually, but not good for unhiding the ones that were already hidden individually.
When you have a Part open, there is usually model browser node near the top of the model browser tree, with its name starting with "View:", followed by the name of the active DesignViewRepresentation (DVR). Most of the time, there is only the one, Locked DVR named "[Primary]", and no 'custom' ones, until we create some custom ones. We often do not need to use these in a part, but sometimes we do, if we want to show the same part in multiple colors / appearances, or if the part has multiple solid bodies, and sometimes we want to be able to turn the visibility of some solid bodies on/off. So, when we drop a part into an assembly, as an assembly component, we can have multiple copies of that same part in the same assembly. And if that part has multiple DVR's defined within it, we can set one assembly component to one of those DVR's (Red, for example, or certain bodies visible), and set another assembly occurrence of that same part to a different DVR (Blue, for example, or different bodies visible). The same is true when adding a sub assembly into another assembly, when the sub assembly may have multiple DVRs, and we add multiple instances of that sub assembly into the other assembly, as assembly components. We can set one sub assembly occurrence to one DVR (some of its components visible, some certain colors), while setting another instance of that sub assembly component to a different DVR (different components visible, other component colors). However, the DVR's in sub assemblies record much more. Each DVR in each sub assembly will not only record the visibility, colors/appearances settings defined directly in that sub assembly, but will also record which DVR each individual component within that sub assembly is set to. This is why these should be set-up from the bottom, to the top, instead of from the top, to the bottom.
Because all visibility (not suppression) and color, and appearances are recorded by DVR's, when we want to control those aspects within the documents that assembly components represent, the proper way to do that is by having a DVR defined within the referenced document and set up the way we want it, then setting the assembly component referencing that document to the DVR that is defined within it. And, because of this, it is always best to define these settings along the way, as we design the parts and sub assemblies, so that all the DVR's we may want to use at a higher level assembly, will already exist and be ready to use. If we choose not create/define any DVR's along the way, then controlling all those things from the top, down, from the main assembly later becomes much more complicated and more difficult to do properly.
On the other hand, if none of the parts, and none of the sub assemblies ever had any custom DVR's created, and all of them were still just set to their original DVR (named "[Primary]"), then a relatively simple code process like the one I posted above may work OK for you. This would be because...all those types of settings (visibility, colors, appearances) that were set along the way, will all have been recorded by that one, default DVR, and any changes made by the code will also be recorded by that one, default DVR.
The following properties & methods of the assembly component (ComponentOccurrence) can be used to get/set the DVR that an individual assembly component is currently set to.
ComponentOccurrence.ActiveDesignViewRepresentation
ComponentOccurrence.IsAssociativeToDesignViewRepresentation
ComponentOccurrence.SetDesignViewRepresentation
Wesley Crihfield

(Not an Autodesk Employee)