domenica, agosto 31, 2014

practical BIM: The Nature of Naming

practical BIM: The Nature of Naming: BIM is by nature a shared environment. For example in the context of Revit each discipline team work together in one file. This new paradig...

venerdì, agosto 29, 2014

Change Elements Workset Macro availible

This is the latest version of this macro that moves objects from one workset to another and let the user check the results via a report button.
The user can copy and paste the Id's in the report for further editing using the Select by Id tool in the ribbon.
There's a check box that allows to move also hidden objects that don't belong to any categories visible to the end user.
Here's the solution to copy in here:


If you're happy with my code please show me some gratitude paying what you want via PayPal to:

giovedì, agosto 28, 2014

Move Elements to Workset - WIP

This macro opens a little form with two drop down  menus listing the worksets in the project and then try to move all the possible object from the source to the target workset.
There's a Log button that opens a read only dialog listing the Id's of the elements and the types divided by workset and the number of objects in parenthesis.
I've used two different techniques to list the worksets in the project, the FilteredWorksetCollector and another one using the WorksetPreviews.
Right now I'm thinking about adding a check list for the categories to move between worksets, so the the form would be something more like the one in this other video:

Implementing the category check list produced some undesirable side effects: Analytical Surfaces and Structural Trusses return an error when selected, categories such as "Other" and "Legend components" are no longer taken into account when performing the macro.
I guess it's best to keep the possibility to control each and every object in the model for the next version.

Dynamo Language Guide for Code Blocks is out!!!

At a first look it seems pretty much the same old Design Script Manual, but it's still crucial in understanding how code blocks work.
Thanks to the team that put this documentation together, you guys are amazing!!!

mercoledì, agosto 27, 2014

Align Topo Macro attempt

Today I've found an interesting Topo add-in by Mustafa Khalil and here's a video demonstrating how it works.

So I decided to understand how it could be done and I tried to mimic the core of the add-in.
My attempt here is really basic, there are no parameters exposed to the user to set for instance.
This exercise gave me the opportunity to understand better some of the topography features in the API, for example the implementation of an interface to manage preprocess failures since it is needed to commit the transaction group necessary to edit a topographic surface.
Another interesting aspect is that Revit won't allow you to process points with the same XY values for topo surfaces, that's why I' decided to add a point at a time while editing the surface.
It would be fun to do the opposite: having a topo and edit the floor secondary element back... oh wait, Marcello Sgambelluri already did it :)

Anyway here you can find the code I've used if you want to have a look at it, if you are happy with it please show me some gratitude paying what you want via PayPal to:

martedì, agosto 26, 2014

Dynamo - 4 Points adaptive component along two lines update for version 0.7.1

When I tried to update the previous definition to the 0.7.1 release something went wrong and Dynamo was stuck.
I took the opportunity to rethink the definition and I found a slightly different approach to the problem: this time I keep the curves as distinct elements almost to the end, this way it's easier to check the orientation of the curves and get rid of the special node for opposite direction of the curves.
After selecting the model lines in the Revit environment Dynamo automatically places the Adaptive component accordingly to the maximum width specified for the subdivision.
If the orientations of the lines are opposite, Dynamo reverses one of the two and perform the definition anyway.

There's always need to delete the panels manually once created like in previous version, it would be nice to have a "dispose" node for this particular goal.
Here's the custom node definition and here's the test definition I've used.

sabato, agosto 23, 2014

Images from the past, hopes for the future

I was looking for some images for a presentation and I came across these pictures of some works I've done at the University prior than 2008, way long before adaptive components came along.
It was definitely fun! but really soon I realized that what I was doing was much, much more than just a 3D model, I saw the potential and what eventually the AEC industry was going to be in the closest future.
That's when I moved my focus from modeling and representation to BIM. Unfortunately most of the people that I know from the University still haven't even approached to BIM and they're just starting now to consider to move, for instance, to Revit because they're blinded by the 3D model and the rendering.

Using Revit to just make a 3d model is like having a Ferrari and use it in the backyard.

So please double check your willingness to learn something new (a BIM approach to design and not just how to use an instrument like Revit), both for productivity on a specific project and in the long run, keep in mind that it can be really painful if you're doing it while you're already working full time but it hasn't necessarely to be a blood bath if you ask for help to competent people.
Break problems into smaller ones, read forums and blogs to find answers to your questions, don't take "no" for an answer and never give up.

martedì, agosto 12, 2014

Dynamo - 3 points Adaptive Component

Today I was emailing with HyunWoo Kim of Enjoy Revit about a possible workflow involving adaptive components.
I made this quick Dynamo exercise on multiple elements selection and a specific 3 points adaptive component.
The 1st and the 2nd point of the family are attached to the ends of the curve while the 3rd is attached to the mid point. The tricky part was to get Dynamo understand the corresponding parameter for the mid point, infact if you insert in the list the value "0.5" directly it returns an error because somehow 5 is passed instead.
But if you use this simple formula c=(a+b)/2, everything seems to work properly.
It also works on curves in a linked DWG.
Here you can find the definition.


The error with 0.5 is no longer an issue since I changed the Operating System settings of the decimal separator for numbers changing them from comma to point.
In order to change it you have to go to Control Panel and click for the location settings, then customize the formats for numbers specifing a point instead of a comma as decimal separator.
Thanks to Colin McCrone and a reader who actually gave me this tip in the comments below.