Looking for extension to control object visibility

I’d like to be able to have several copies of a “component”, but have the ability to control the visibility of nested objects at the instance level. So all the geometry stays identical and in sync according to the component definition, but each instance would have the ability to have different visibility states for the nested objects.

Of, course, this isn’t possible with components, but I think maybe an extension to could do this with a special type of group.

I model multi-family apartment buildings, and have several copies of each unit type throughout the building. But sometimes, the top floor will have a slightly different configuration, like a taller ceiling, or a different balcony, so I’m forced to make a unique copy of that unit for each variation. It would be great if I could manage the unit as a single “component”, but just toggle the visibility of the different variation objects as needed.

Does anyone know of an extension with this capability?

May be Curic Design Option

This means that each “copy” will need a unique component definition because it’s the definition that has the entities collection. When you change the state of an entity in that collection, the collection itself is changed. This is why all copies share the same entities collection and why all the nested objects and their states are shared between all the “copies”.

So, perhaps using a group at the top “shared” level is a better idea, because when you enter them to change the visibility states of nested objects, SketchUp will automatically create a unique group definition for you.

1 Like

Hey Dan, yeah, I know how components work, that’s why I placed quotes around the word component, lol. What I’m looking for, of course, wouldn’t work using components.

Basically, I’d like the geometry in the object to behave as if it were a component, but the visibility state of the nested entities behave as if it were a group.

So, to make an analogy to a component; control the geometry at the “definition level”, but control visibility at the “instance level”. It should be possible using an extension controlling a “special type” of group. Wasn’t sure if something existed out there already.

Kind of hard to tell what that plugin is doing. Is it just making a group out of all those objects and providing an interface to toggle their visibility? Doesn’t look like what I’m looking for.

Uh huh. I know you know, but … ya know, often I make these general informational posts for the general readership so those who don’t know, will then … uh know. :wink:

Hindering this is the long absence of a component#to_group API method. Workarounds are very hacky.
And would not work well with DCs as they must be component at the top level. Starting out with a group to begin with may not be so bad.

1 Like

In similar situations I have used unique definitions for the apartments, but re-used components of what is identical between them. For instance they could have unique interior walls as the height differs, but the doors could be wrapped in a shared component.

I also make sure to use consistent axes and use Eneroth Copy between Components to copy things in between. For instance, if I made a change to the interior wall group in the apartment with one ceiling height, I’d copy that group to the corresponding place in the apartment with a different ceiling height and then manually adjust the the height.

1 Like