I admit – i (sometimes these days) like to cook – and the pressure cooke is a childhood memory…
So – now there is this project that I am not supposed to talk about but it is a pressure cooker of sorts – only bigger and we need to model a perfect structural model for some interesting analysis.
So our pressure cooker looks like this:
And the challenge was to auto-join all walls to the floor plate above to create a clean analytical model:
And that is a 50 second Dynamo – probably the first one I wrote that worked untested – take a look:
What we do here – first we select the walls and the floor above in Dynamo. We analyze the categories and filter for walls and floors:
Then we join using lacing longest:
Element.JoinGeometry is from the Clockwork package.
If you want to go hardcore and not use custom packages – this is the relatively siple Python behind it:
from Autodesk.Revit.DB import *
from System.Collections.Generic import *
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
items1 = UnwrapElement(IN)
items2 = UnwrapElement(IN)
i = 0
booleans = list()
for item1 in items1:
i += 1
Our friend here has something to say…
Doing Revit families is fun – dong complex Revit families is even more fun but then you need at mit of the special Spice to enjoy it…
So – my family with nested Structural columns works fine and it flexes nicely… in the Family Editor environment…
some parameter change
Bon – it flexes as expected…
Once loaded into a project document – boy oh boy – this does not look pretty:
And WHY IS THAT you might ask – rightfully so… seems that the issue is buried in the structural column family…
This upper level is – IMHO opinion – the havoc… we here at LRCZ rebuilt the column totally new without the upper level datum and not…
Life is good…
P.S.: we understand that this topic is a rare special phenomenon but for details – PM me…
Our friend found something here. Revit weirdness.
Life is good…
Donovan… the bass line is kinda cool and sets a good background for banging brains with Dynamo/Revit under pressure…
Saturday is family day… – yes – in a perfect world Saturday would be the kind of family day when you just sleep long – have a relaxed afternoon with some nice treats outside and then convene for a nice dinner…
Perfection does not exist – so Family day became Revit family day and – as a disclaimer – there is a bit of Dynamo involved but not much… some complex family stuff and more yet to come…
So – the job is to create repetitive scaffolding elements in Revit and – after banging heads for days finally – we found the conclusion how it goes easily…
So that was the first attempt in Dynamo positioning all the little nitty -gritty elements individually which was surprisingly stable – but hey – that graph is nothing I would like to see on any of may client’s desk:
So this spaghetti Dynamo produces this
But honestly – the graph looks like – … – fetching for words…
More elegantly we do it by tweaking the families into assemblies:
This graph is looking much better and produces a better result:
UI – merci to Data-Shapes (did I tell yop they rock ?) – so now lets see what it does:
So – if you are interested how that all worked out feel free to reach me…
Code – here. If you want to follow it you can reach me for sending you the testbed with the families.
For the rest – life is good…
So – for the last three nights I banged my head why – oh why – on re-execution of my graph my FamilyInstances.ByPoint would jump all over the place like headless chicken.
It dawned on me – Dynamo wants to be clever and caches stuff -so all the elaborate placement and rotation nodes – well – they wanted to be clever and stuff flew around like… (to be filled in)
Prorubim to the rescue:
The website: You’ll find it here.
A snippet from my graph – please hold on, full details in the coming days:
Without the ForceChildrenEval node – chaos
With the node – all good:
Saves the day tomorrow – at least I hope…
Life is good…
Another song that is stuck in the back of my head and the one line of lyric is hilarious “You’re gonna take a walk in the rain. And you’re gonna get wet”
You want to build a complex assembly in Revit using Dynamo and I can assure you – you’ll have a hard time keeping the marbles up there in your scull working together.
Lets roll this from back to front for a change – the result looks like this:
The Dynamo behind it is probably not the most elegant piece of graph on this planet but – finally, after a week of tinkering around it seems to be stable:
Nonetheless to say – you won’t be able to decipher the graph from the screenshot so if anybody interested ping me or try to dissect it here.
We got a UI around it – thanks to Data-Shapes:
And if we throw it into Dynamo Player we won’t see the ugly spaghetti graph…
Nonetheless, the beauty of all of this is that we managed to position 2787 individual elements in a single run – not too bad in my humble opinion.
Life is good….
PS: Credits for the parts go to Dutch Steigers.
PS1: This will be refactored by using less Dynamo and more nested families such as this one:
So stay tuned…
Family time – isn’t it. Not the schmooze kind playing with your kids (especially when your kid is closing in on becoming 20) – nor the zoo time part – Revit families… lets take a look at the following picture:
Could all this be a complex nested family – probably so. But your’s truly is sick and tired of troubleshooting complex families that tend to break out of the blue so we went the hard way and did this entire assembly in Dynamo. The graph is probably the worst piece of spaghetti code:
So the word is out – nested families or Dynamo – or both? This story will be continued…
If you want to get the graph for playing around – grab it here.
The testbed Revit project – grab it here.
Next steps – the strategy is to create basically 2 families of repetitive parts to position with Dynamo to cut the chaos down. Ongoing project, lots of new stuff learned…
Life is good…
Now this is a complex one… look at the assembly of parts in this screenshot – credit to Dutch Steigers – follow them here – https://www.facebook.com/DutchSteigersBv/
Crazy amount of details and components – so – in Dynamo we try to recreate this and – warning – this is an ongoing story, the Dynamo graph is at 50% yet but there is a system behind the madness…
So – the graph can do this right now:
The graph behind it is – rather complex:
Let’s go through it step-by-step:
Here we analyze the line to build the scaffolding along:
We assemble the initial parts and rotate them into position:
And the rest is copying stuff around…:
This is just a sneak peek int what is going on there but if you are interested stay tuned or send me a PM or mail – again, credit to Dutch Steigers for giving us the opportunity to make this happen…
Life is good…
Again – a silly song title – name the band and the album and I’ll send you a gift.
Nonetheless – let’s get to the topic and my new friend Alfred thinks it has some real potential as well – here is Alfred:
So the story goes – while trying in good openBIM spirit to get an IFC into Revit we noticed that some elements come in faceted:
Let’s take a look at the roof – a piece of planar slab and still – a faceted import geometry:
Import symbol… ouch – we do not want to have that, Revit is not good with foreign geometry at all and especially this kind of import symbol that turned out to be a mesh.
Hmmm – how are we going to make a genuine Revit geometry out of this? Dynamo helps…
Let me walk you though this graph – first we are getting the element in question and its geometry:
Nothing new – now we deconstruct the mesh using sone secret sauce from Spring Nodes:
Now we construct a solid from the faces of the mesh:
And then again – Spring Nodes to our help – we create a loadable family of the category of our choice:
Which results in:
And see – it is a loadable family composed out of a free-form element:
And now let’s just contemplate how much we can do with creating genuine Revit solids out of meshes…
Life is good…