torsdag 18. september 2014

Revit+Aspose+QR-codes+Dynamo = Gamechanger

Well, I'll tell you this much: Dynamo seriously impress me on a daily basis..
So the story goes like this:

Was looking around the internets, searching google for cool libraries to use with Ironpython, which is the implemented version of Python in Dynamo. I figure out as I'm fooling around that the positive side with Ironpython is that you can also call .NET code directly. Ok.. what is actually .NET code , you say? I don't know.. actually.. So naturally I search for:

"Cool .NET libraries" And somewhere in my googling i found this site:

As I scroll down I see that they have a " Apose.Barcode for .NET"-component
That would be a Barcode tool for .NET applications

So I thought: wouldn't it be cool if I could generate QR-codes for Revit elements and one could use it for whatever? Marking columns, register whether the column has arrived at site or not, get QR-codes off the drawing and check whatever..

So I thought that I'll someday read into this and learn myself how to access .NET libraries from Ironpython from within Dynamo.... Tedious at best for a non programmer..

But none the less I downloaded the free trial from Aspose, and I saw that it was a .dll file. (Dynamic Link Library) and it struck me:

Isn't dynamo supposed to read DLL-files directly??

Oh yeah it is:

And it just shows up like this:
It got AustraliaPostFormatControlCode for crying out loud!!! Don't ask..

So 4 walls, some marks, comments and an hour later this is the result:

and also: The image files can be loaded into schedules and onto sheets! :)

Enlarged version:

I can't even begin to think of the possibilities this opens up for. Does anyone know similar systems that can be used with Revit in the same way?

mandag 1. september 2014

List.FilterByBooleanMask and Boundingbox

This week I would like to look deeper into a earlier post where I described the List.Filter and List.Map functions.  (In Norwegian)

One of the things I mentioned in that post was to have the possibility of checking whether a point is within a bounding box or not.

So here it is:

The nodes in the upper part of the definition are the bounding box workflow. The bounding box is a simple geometry defined by cornerpoints, but can possibly be rooms or any other kind of geometry.

In the bottom you can see a similar workflow for extracting a list of points that are within two Y-values.
(Notice the &&-operator that means that both conditions must be met to be true in filter list.)

So as you can see the List.FilterByBooleanMask is a quite powerful node!