Scaling an instance makes it a unique component

This bit of Sketchup Help clearly says, " Scaling a component changes only the individual instance. This feature allows you to have differently scaled versions of the same component in your model. To scale a single instance, click the component instance with the Scale tool and use the grips to set the new scale, using any Scale tool technique…"

Well, I can’t make that work as written. Every time I scale a component instance, it makes that one a new unique component. I’ve tried various levels of nesting, making attribute values fixed or relative to parents’ attributes, numerous 3D Warehouse examples labeled as “scalable,” but no good.

Can anyone explain or provide an example of a component whose instances can be different sizes??? Thanks.

The most simple DC would be a 2 by 4, drawn per example as a square in the ground plane (red green plane), pulled up in the blue direction which gives it it’s length, and then made to be a component, then constrain the scale attribute to only allow it to be scaled in the blue direction.
One definition, different lengths.

Hmm… Very misleading, and disappointing. Again, help says, “Here’s a door component downloaded from the 3D Warehouse,” but every one I can find there is dynamic and does some kind of “smart” scaling; and so can’t render in different sizes from the same component def. And as it is, when SU does decide to turn an instance into a unique component def, the original and new components are still, by “definition,” identical! So why uniquify them?!

I guess the lesson is that a component can be either simple and reusable, or smart/dynamic and forced into multiple defs for multiple sizes. If that’s not correct, please educate me. Also, I’m not opposed to a Ruby-based solution.

Dynamic Components (DCs) is an add-on that works within the framework of Sketchup’s current component definitions. When parts of a DC have scaling behaviours “programmed” into them that makes them scale differently to the whole (like maintaining a frame width in a door or window) Sketchup needs to create a new component definition to accommodate for the change.
I too find this somewhat annoying but something that I can live with.

Right clicking on the component and selecting “Make Unique” Will allow you to have the same component in different sizes also. I just had to do this with a component that was not dynamic that fit differently in different locations in the model.

The Dynamic Components extension ins several ways break the logic of SketchUp. You can chose to ignore it and lose functionality, but have a more consistent experience.

1 Like

To be clear, dynamic component that have no nested dynamic entities can and do preform like regular components,

length takeoff example.skp (36.7 KB)

Its only when you nest a DC within a DC that this bug occurs which has not been fixed by the developers, we can only work within the scope provided and the onus is on Trimble to resolve this,
Hopefully soon.

But also: its only the DCs within a DC that loses their “componenty nature” in that they become “auto-unique” upon manipulating a copy. So you can still enjoy that limited component-like behaviour of having a few parts update across your copied DCs. That only works for components that will behave fine beeing scaled with the component, like the stool in a outer trim in a window. It extrudes the whole length of the component, so it will behave fine not being DC controlled, and keep being a component.

The tip from “Zarloff” above opened my eyes though. I’ve tested actively making the components unique, and that way you get to keep all your internal components the same.

This feels really strange, but I guess, if you know it you can work that into your routines. After all, the reason for making DC´s in the first place is to be able to update them all at once in, say, details of the trim. Otherwise I would spare me the trouble of all the coding and learning process, and just have my windows be groups that I edit inside them, one by one. I could then just add my trim later in each group, and just scale that manually in every group.

So why not just define for DC components that when you manipulate one of them that makes that instance unique, just like manually (right-click) making it unique, instead of defining that all internal components are set unique as well? That should be really easy to do, and then they are not set to autobreak all their very purpose for all those who dont know this rather counter-intuitive behaviour :slight_smile:

The new live components look cool of course, but if you cannot make your own trim for them then I dont really see the use.