Dynamic component attributes do not update instances, mysteriously grouped themselves

Hi, I was re-modelling an architectural model and created a dynamic component for mullions/transoms with one attribute to chagne their depth: LenY.

For a few hours, every new component I made, the mullion depths would update if I changed LenY.

At some point, I realised that changing LenY on one dynamic component did not update all instances of that component in my model. Even more strange, each instance of the dynamic component was then grouped, as well, without me grouping the instance.

When I open the attribute editor form, the instance of the dynamic component shows as a sub-element of a group.

So far, the only solution I have to this is by double-clicking loads of times to get to the front surface of a mullion and drag it’s face to increase or decrease the depth. Not ideal.

Anyone else experience this mysterious “breaking” of Sketchup? Anyone have a fix for this? I have a lot of mullions… and I want to be able to quickly change their depth (LenY)…

I would guess this is an issue with the way your components are created… the best way to get help would be to upload a component here. Otherwise, the best we can do is guess.

Here’s the simple 6-sided box I modelled to create the dynamic component in Sketchup Pro 2020.component-mullion.skp (815.7 KB)

Looking at your DC, I am a little confused. While it does have an attribute, this attribute is not tied to a user control. As this is a DC and not a regular component, modifying one instance will not change the other copies of this DC… this file is simply a cube with a single attribute.

Let’s back up a step. Can you explain what you are hoping to do by creating a DC of this mullion? I am thinking that, what you actually want is a simple component… or a dynamic component with more info than what is in the file you shared.

Thanks, Aaron.

I set out to create a component that I can easily control the depth of using the “change attribute” feature.

I first created the dynamic component. I then made instances of that dynamic component. Initially, when I changed the attribute in the “change attribute form”, all instances updated. At some point, each instance grouped itself and the “change attribute” only affected the selected dynamic component.

The real reason for me to do this is because mullions are very thin architectural elements and Sketchup graphics start to fail when you have large objects and try to zoom into a small object to be able to edit them accurately. I can still double-click into the individual component that I want to chagne and it updates all instances, but the “change attribute” method of doing this was much faster and did not require me zooming into a small object in a file with many large objects.

What I want is to be able to type in 3cm, 5cm, 10cm etc so I can quickly see the effect of a deeper or shallower mullion on my architectural design without editing the geometry manually.

Herein lies the issue!

Attributes are the controls that are used internally to generate the attribute. To actually manipulate the DC, you need to hook the attributes to user controlled Options.

Some thing simple like this would only need you to connect your LenY to a user control. Then you can use Component Options to type in the value you need for each individual mullion.

Editing an attribute is the equivalent of using scale on each piece… except as you do so, you run the risk of generating new versions of the DCs every time you edit.

Sorry, Aaron. I’m not understanding.

I set out to create one simple box, to then copy it, for example, 1000 times. I set an attribute for LenY to be able to dynamically change the depth of all 1000 boxes simultaneously by typing in a number for LenY.

It worked for about 4 hours, and now it no longer works that way. I’m unable to repeat the initial euphoric “change attribute” workflow even after restarting my computer.

What you need to do is create a component one time. In this component, create the attribute and connect that attribute to a user control.

After that has been done, THEN copy it and use Component Options to make changes.

Changing the Component Attributes after you copy it is making a new DC every time you edit it.

I would recommend stepping back and learning about how Dynamic Components work before you try to fix this problem.

Check out this play list for a walk through on how DCs function.

I may be asking the wrong question, then, because I’ve set up my dynamic component just as you instructed before I started this discussion.

My question is now: how do you create a global attribute for a component so that if I change the attribute of instance #375 out of 1000 instances, all 1000 instances make the same change?

This is what I am saying I had working using the simple “change attribute” form.

And this still doesn’t explain how each of my component instances mysteriously became individually grouped. Was their a key combo I mistakenly pressed that did that?

Any help on this would be appreciated as well.

What you are talking about is just a component. Create geometry, make it a component, copy it. If you change one, they all change.

By making a DC, instead, you are adding a layer of data that prevents all pieces from changing together. Your half-formed (an attribute added, but not connected to any controls) DC is causing the issues you are seeing.

Aaron, thanks for trying to help. Maybe I was hallucinating for those initial 4 hours where the “change attribute” form changed all instance as if I simply edited an ordinary component. You and I maxed out the conversation about this particular issue, so if no one else wants to chime in, we can lay this to rest now.

What I would like to hear from you and anyone else on the forums about, now, is how a bunch of dynamic components have become individually grouped. Any ideas?

DC instances don’t all behave like a normal component. most times if i change an attribute on a single DC, none of the others change. HOWEVER, if you create a dynamic component and embed it in a regular component, it could change them all, CAVEAT even so, the internal DC is unique, so results may not be as you expect.
so the real option is to create the DC’s, place as desired, and then use a Ruby script to perform the attribute changes across them, think “family” of DC. for example, consider build a base DC called “bodma_Mullion” which has consistent user controls (e.g. adjusting LenY via a selection list for UI, but LenY is still available via API) and then you need a script to set all “boma_Mullion” definition entities to the same LenY setting. sadly a global DC capability like this is not native to SU (or at least i have not found it). and maybe if you have a base DC, and select all DC instances you can change the LenY via the user control but my experience with this is the results are not always as expected once you’ve altered the attributes on them.bodma_mullion.skp (41.8 KB)

Glenn, this is insightful, thank you. I definitely put the dynamic component into other normal components. Unfortunately, I cannot recreate the scenario.

But this still does not explain how ALL of the instances of the dynamic component themselves became sub-elements in their own groups…

I’ll chalk it up to 2020

Check these threads: