Beams at Adaptive component location(Mass Family) with Dynamo

Hey Everybody,

I’m using dynamo to place a structural beam where I have an adaptive component.

I’ve actually the adaptive component inside a parametric mass family.

As long as the script is kept opened, when I change the parameters in the mass family the beam location is updated.

But If I close the script and reopen it, a new beam is created.

Refer to the attached images.

What am I missing?


Hi Salvo,

Can you drop here rvt file or send us the link of the rvt file with mass family in it.

@KulKul see attached rvt (Revit 2016) and dyn test AC dynamo.rvt (1.1 MB)
AC Dynamo.dyn (12.4 KB)

Nothing. This is how Dynamo works.
When you open a file afresh, it may be a good idea to delete all geometry generated earlier by the same definition.

@Vikram Subbaiah Thanks. That is disappointing :grin:
In a real project deleting all geometry generated earlier is not an option or the tags will go with it.
Anybody can think of a workaround?

Nope, it’s a workflow flaw. Your only workaround is to also generate the tags, i.e. get Dynamo to generate everything so no manual work is required. However, this is largely impractical. Despite the fanfare, and Dynamo is great, it’s still needs a few more years of maturity before it can truly be called game changing.

you can get fancy and store the generated elements ids into a TXT file. Before placing new beams you would check that file for existing ids and instead of deleting them, just update their locations. As much as that seems like a possible workflow, I am not sure if its worth the hassle. You will have to decide that yourself.

@Thomas Mahon. Thanks for your reply.I agree this is not practical. Even if you replace the the tags, manual work will still be needed (text clash, etc…)

@Konrad K Sobon, Thanks for your reply.Not sure how to implement your proposed workflow. Once I know have the list of the existing beam ids how do I get to updated their location based on the mass family?

Try saving your definition after placing the beams. That should store the beam guids inside the *.dyn file and update the already placed beams the next time around. You’ll know it has worked when your *.dyn file increases in size significantly.

Here’s one possible alternative, similar to what Konrad suggested:

1 Like

@Dimitar_Venkov. Thanks for your reply. It worked!:tada:

Regarding your alternative, I get an empty list.

I’m using Guid instead but it shouldn’t matter.

Is the output of “Element.Curves” a flat list like the beams? I suspect it’s outputting nested lists.

you were right. :grinning:Thanks a lot.