We recently got the following inquiry: there is a model consisting out of walls, beams, columns and floors.
All of the structural elements are made out of concrete.
We want to draw a random box and get the exact amount of concrete for structural elements by category that is within the box. If an element is partially cut by the box, we want it sliced by the box and the part within the box added to it.
Here is the Dynamo that does exactly that:
Let’s dissect that:
Here we get the user input – the box and the category of elements to take into account
Next we got to do a clash detection between the elements collected and – here I need to emphasize how great I find Bimorph Nodes – the performance difference is dramatic.
Now we check if elements are structural:
Then we pull the geometry of elements, cut them by the box and pull the volume
And – to make things snazzy we try to visualize that in Revit and Dynamo:
In Revit we do that by using the following nodes:
It honestly does not show too much – that’s why we use the Watch3D node as a proof of our results – here we can see that the elements are cut back by the box:
And life is – getting better…
Category – 50 seconds Dynamo. It was not the greatest day of days today, lot’s of work and the server decided to do a Windows Update which basically consumed modt of todays productive time.
Nonetheless, jumping into preparations for a new project we started to lay out the grids and lo and behold we wanted to be clean and start with Grid 1 vertically and Grind A horizontally.
At Grid one we got the infamous warning:
The only problem was – Grid 1 was nowhere to be found in the project. So we had a choice of 2 – searching for half an hour to find the mysterious Grid 1 or building a Dynamo – in 50 seconds.
Done – Grid 1 is nuked out of the system and the name can now be reassigned. That’s essentially what I like about Dynamo, quick and easy stuff.
Life get’s better…
Another song title – who’s the first to name artist/album will get a present. Nonetheless, let’s get to the issue at hand.
Crunch time, projects coming in, and this week we had two IFC based collaborative ones. Finally real BIM!
The lay of the land is that we need to take these architectural IFCs and develop our structural construction drawings around them.
Number one – a nimble but still challenging project – adding a carport and garage to an existing structure and the IFC we got looks like this at first glance:
Hmm – not perfect needs a bit of massage to work right but then again good enough to put the structural information in there and produce some sharp looking documents to communicate with construction…
Case closed on this one.
Next one looks so sharp in the IFC viewer:
But then again in Revit – outch – evil error message:
And the result in Revit
Ground floor is missing – so I call for help and Peter Kompolschek came to the rescue – he found the bug in the IFC file:
Following the advice I went into the IFC with a text editor and looked at line 2338 to eliminate the extraneous dot – like dot… a dot for xxx’s sake
And really – after eliminating the extraneous dot we got:
That is looking better…
But – as the title says – we still have a long way to go to make this happen in a way that is straightforward for everyday BIM users.
Credits to Der Architekt – Peter Kompolschek for debugging this.
And life is – getting better, inch by inch…
It has been a while, flu, personal loss, many things but still there is something to share.
Don’t we all love Revit schedules and the fire drill when we need to put them into an Excel for downstream use. Fret no more – there is a simple Dynamo to dump all the schedules in your project to Excel – it looks like this:
Super simple it seems – the key is in the Python script there which looks like this:
This will dump any schedule in your project (Be sure what you wish for…) onto a location of your choice…
Excel Sheets… that’s works for me and life is good…
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…