Coco Chanel said it better than me…

Sometimes less is more – I have sinned so many times building über complex families only to watch them melt down with every service release of Revit… not gonna happen anymore – I ask for redemption.

So much fresher it is to be able to resolve a rather complex geometrical problem with a simple Dynamo – here we go:

We start with a couple of wires that were sent to yours truly modeled as individual in-place masses – here is the model:

Capture

Here are the wires we talk about:

Capture

Here comes the Dynamo script:

Capture

Part 1:

Capture

Part 2:

Capture

Result in Dynamo:

Capture

To get the geometry back into Revit as a genuine Revit geometry – here is a hint:

Capture

Life is good…

Important notice: full credit to the original model goes to bim-consult GmbH – http://www.bim-consult.eu/de/

And a very merry… and some rants..

First – foremost – seasons greetings to all the spuds out there – may 2018 bring more Dynamo coolness and all..

One strange finding to share:

We have a category in Revit called Conduit Run

Noname

And it collects nicely all conduit runs in my project

Noname

The project looks like this:

Noname

Analyzing the Conduit rund – we can get the length and the comments – no worries…

Noname

But then we also have shared parameters assigned to the Conduit Run category and we’d expect to be able to pull them with Dynamo or the Revit API respectively:

Noname

Not really:

Noname

Seems like any parameter attached to a conduit run is only readable in the members of the run but not in the run itself. Sucks.

So – coming up one of these days is how to associate the individual parts of a conduit run to the run itself – spoiler – the Comments parameter might be helpful…

Anyways, lets focus on X-Mas cookies and Eggnog and the perfect Filet Wellington – Happy Holidays and life is good…

Nietmachine – Professionelle Kwaliteit

This might be the most absurd blog title – but for lack of any better idea – that’s the title. And here is what a Nietmachine looks like (for all our non-Dutch speakers)

1347816843_nietmachines-rapid-k1-10510601

So – but That is not what we want to covey today, let’s go to Dynamo…

So there is the issue to build up a Revit topography based on a DWG:

Noname

So – the DWG is strictly 2D but has height values as text elements referenced to points.

Creative thinking – let’s get the text insert point, read the value and treat it like an integer and construct a point in space by insertpoint x/y  and  value z.

What do we need – a DWG reduced to the the text entities. And I don’t care about the slight offset of the text insert point to the nearby point (which I could take into consideration since it is a static offset vector)

Noname

Take it into Revit:

Noname

Flyshit – but the point is:

Noname

Editable text… now we take Dynamo:

Capture

What happens here – we take all text note elements, extract x/y coordinate – take the text string, convert it to a value and construct a point in space. And the slab a topo onto it.

Done:

Noname

Text to Topo – the only hurdle was to get the x/y coordinates of a text note but I found and reused some python code:

Noname

And if you don’t like to type – here:

# Importing the ‘Common Language Runtime’ library
import clr
# Adding specific references: The Revit API
clr.AddReference(‘RevitAPI’)
from Autodesk.Revit.DB import *
clr.AddReference(‘RevitNodes’)
import Revit
# Importing specific extension methods that allow us to gain
# information such as ‘Coord’ data
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
# Creating an empty list that we populate later
OUT = []
# Running a ‘for loop’ over everything inside our input list
# by Unwrapping them (Which is requried between Revit and Dynamo
# objects
for item in UnwrapElement(IN[0]):
# For our ‘for loop’ to work, we need to indent as Python is
# very particular about indentation. We simply then ‘nest’ in
# our line of code an appendation of each ‘looped’ item into
# our previously created empty list. We then ‘cast’ the data
# to a Point (Which dynamo can read)
OUT.append(item.Coord.ToPoint())
# Natively, Dynamo understands that the OUT is our output, so
# pushes this data through the node out port

Life is good…

Talent is an asset…

News of today amidst all the craze of “normal” life – Dynamo 2.0 pre-builds are out:

Capture

They come with a big disclaimer – as far as I understand not all nodes are working and the scripts will – once upgraded – not work in 1.X anymore – so it’s time to build a sandbox for testing.

Once installed you’ll get the familiar choices what to load:

Noname

Choosing 2.0.0 will display the landing screen (BTW – loading time is still kinda appalling):

Noname

Nothing new there – let’s start a new project:

Noname

New eye-candy – all packages are not being picked up but there is an Add-ons tab:

Noname

Which will bring us to an interesting menu of file types to load…

More to come…

 

Flying, domestic flying…

Buried in travel and project work – so there has not been too much new from our side… nonetheless, there is always a little finding…

We may know the Rotate on Sheet parameter in Revit and how badly it works:

So here we have a Callout:

Noname

Let’s annotate that:

Noname

Try to rotate that on a sheet:

Noname

Looks like… well, looks not really good..

And now the trick – credits for that to Artur Braun at Büro Stangenberg in Bochum who pointed that out to me:

Don’t rotate on sheet – rotate the crop region instead.

Noname

We start with rotating a crop region

Noname

Now we need to adjust the rotated crop region:

Noname

That looks good – that is what I can put onto a sheet…

Noname

And now life is good…

 

WTF-00:22_17/09/2017

We try to do BIM and that involves creating a Model. To do so we get 2D CAD from various sources.

And use it as an underlay. and there the problem starts.

So good so fine – you may have seen that all before – what are we supposed to do here?

Noname

Some more detail

Noname

I am not sure I like this…. 1.1 degrees… outch. I am inclined to start a poll here – “Dear fellows – what would you do here”

On the brighter side of things: Metamorphosis Dynamo Package – or is it more a Revit Addin… pretty brilliant, check it out here.

So long folks… life is good…

Daily WTF – continued…

So I am looking at my project and – since I am doing a workshop in Germany I have dilligently switched my Revit 2017 to German language and I look at a particular view and – WTF – this looks like crap:

bad

While in Revit ENU it looks like this

good.PNG

Switching back to Revit DEU

switch.PNG

It looks like this again:

bad

The filter itself…

filter

Now dear people at Autodesk – please explain this to me…

From now on Revit only in ENU – but I deny working in fractional inches…

Daily WTF – Revit-wise

So we are two people working on a workshared model and creating a lot of sections. And we constantly need to relinquish when we try to adjust the section heads. The following screenshot explains:

Capture

 

ExtentElem – it seems that Revit curates all information of Section line extents in one single element… really…

Up for discussion…

Starless and Bible Black

Your might have noticed that I reference my posts to music – please go ahead here.

Today’s task was to put in a layer of 10 cm (3-1/2″) underneath a relatively complex foundation that looks like this:

Noname

A couple of strategies came to my mind.

First I tested doing it in Dynamo by selecting all outside faces and merge them into a single polysurface and thinkening this. No bueno – got single polysurfaces.. that’s another topic for investigation.

Secondly I was going old school – export this to SAT and see waht good old Autocad na make of it.

A body…

Noname.png

Now this solid body can be imported into a Revit project as a basis fir an in place mass

Noname

And the subsequently used to grab Revit roof category geometry from it

Noname

So now we have a multitude of roofs in a project that we want to make a structural foundation – here is how..

Export to sat – open in Autocad and save

Open an new Revit family with the appropriate template and import the Autocad file. Fullly explode it – what you get looks like this:

Noname

 

And this is:

Noname

 

A native Revit Free Form element – all that you gonna don now is to place it…

Here’s some eye-candy

Noname.png

And an overview:

Noname.png

And yes – (DANGER – product placement ahead) – I like what Revizto does – so check them out here.

That’ll be it

Goodnight