Bjorn,
This can be done as you describe, but it can get messy.
First, since the actions within a component can’t effect the attributes of a completely separate component, you’ll have to put all possible appearance variations for a cabinet (or, likely, an adjacent group of cabinets) together, enclosed by an outer component.
Second, for the elements you want to change, you have to model them so that they occupy the same space. So you’ll be “choosing” which one to display from among two (or more) that - were they not hidden - will interpenetrate each other. Prediction: During development, you’ll be using “Hide” and “Unhide” a lot!
The basic approach is:
I’m going to call the outer, enclosing component Mama, and call the variations kid1, kid2, and kid3. (you can extend this to as many kids as you want).
Create a custom attribute in Mama called “WhoCanISee”. Manually set this attribute to “1” - NOT “=1”.
In Mama, activate the “OnClick” attribute and give it:
SET(“WhoCanISee”,1,2,3) ← again, don’t use the “=”!
In each kidX, activate the “Hidden” attribute and set it to:
=IF(Mama!WhoCanISee=X,0,1)
Replacing “X” with the number of the kid.
Your attribute and component names may, of course, be ones that make sense to you!
This approach can be repeated within other “outer” components. For instance, if this is a kitchen, you might have “outer” components of “BaseCabs”, “UpperCabsLeftofSink”, “UpperCabsRightofSink”, “Countertops”, “IslandCabs”, “IslandCounter” and have separate sets of options for each group.
Disclaimer: I’m NOT at a computer that has SketchUp right now. I’m 95% sure of the syntax I used above. If I’m wrong, it’s most likely that the “Hidden” attribute of each kid should have quotation marks around Mama!WhoCanISee: =IF(“Mama!WhoCanISee”=x,0,1) - but I think the way I originally wrote it is most likely correct.