mercoledì, dicembre 12, 2018

Dynamo Primer Slide Deck

It's been a while since my last post on this blog. I was lucky enough to be involved in very interesting projects with Autodesk Consulting customers all around the World, especially around automating workflows using Dynamo with other Autodesk software such as Revit or Civil 3D.

Over the past few years I've been doing a lot of these engagements and I started to collect some material to support Dynamo workshops. I didn't do this alone of course, I've referenced a lot of the amazing work that the Dynamo team put into documenting the tool on Dynamo Primer and GitHub, and I'm also very thankful to other colleagues such as Dieter and Daniel who contributed directly to improve the content of this material.

Since 2015 I've been developing an approach to implement Dynamo inside  a large organization at a global level (from a few hundredths to tenths of thousands users to give you an idea), the processes to control standards and consistency of the graphs to make it easy for the users and organizations that want to harness the power of automation. This is what I call a "Dynamo Foundation".

In this context I've developed a Dynamo standard for Autodesk that I've partially published on this blog right when the node groups were introduced in 0.8.1 (link).

I just recently had the pleasure to meet Vladimir Ondejcik, who about a year later than me published one of the most used standards for Dynamo. I was really happy that he liked some of my suggestions to improve his own template.

It's impressive how many resources around Dynamo are available nowadays! I cannot possibly list them all in this post but just a couple to give you an idea of what an amazing work the people in the Dynamo community has been doing: Danny BentleyJohn Pierson, and so many more! (you are more than welcome to add them in the comments if you like).

Well sometimes information is too much and all over the place, I found myself in situations in which people were under the impression that Dynamo is some kind of magic wand that can do everything a user wants. Some others have a legitimate preference to continue creating their "secret automation weapons" developing using traditional scripting and coding and don't even want to start to understand how to use visual programming. Others they are just confused and overwhelmed by all this abundance.

I think the more you know the better. If there is an effective way to achieve the result you need, with the tools you have, with the knowledge you have, you should go for it.
And if you don't know enough: well, congratulations, that's the perfect day to start learning something new. I do understand those who need some support, some guidance to have a sound internal compass when it comes to approach a mindset shift.
That's what I like to do in Autodesk Consulting: help our Customers in being successful in their journey towards automation, with their own pace, to fulfill their vision.
We add value to make the difference.

A few days ago a colleague, Toshiaki Isezaki, reached out internally to have some clarifications around what are the differences between Revit API and Dynamo. He had a brilliant idea of creating a comparison table and it quickly became a very interesting discussion with a lot of insights from very knowledgeable colleagues around Autodesk such as Jeremy Tammik, Miro Schonauer and Seth Edwards. I gave my contribution too and I also shared the presentation I usually use in workshops to help Toshiaki in his endeavor.

Today Jeremy told me he liked my presentation very much and he suggested I'd publish it, so here it is, I hope someone can find it useful (link).

lunedì, febbraio 19, 2018

Robot Structural Analysis via Dynamo in Python

Ever wanted to do more with your Robot and connect it to Revit and Dynamo but you didn't know how to do it?

Fire up Robot, Revit and Dynamo for Revit, in Dynamo create a Python Script node and copy the following code (make the necessary adjustments to match the Robot release you are working with).

Robot offers a COM interface, very much like Excel for Dynamo, so in principle you can create your package of nodes using Zero Touch, but what if you don't use C#?
You can do it with Python! you just need to know what to look for.
First, you need to make sure you have the Robot SDK installed. If you install it from the media, you can find it here (pay attention to the release you want to work with):

C:\Autodesk\WI\Autodesk Robot Structural Analysis Professional 2017\x64\Tools\RSASDK

After the install you can find the SDK content in here (again, watch out for the release):
C:\Program Files\Autodesk\Autodesk Robot Structural Analysis Professional 2017\SDK

Now you should be good to go!

In the code sample I'm sharing there are two behaviours wrapped inside two if statements.
The first starts at line 13 and it will read the bars you have in the Robot model and recreates them as Dynamo lines. It also returns the bar number, and the label used for the bar section).

The second starts at line 25 and creates a new project in Robot and adds 4 nodes and 3 bars.

You can start from here to leverage the Dynamo geometry and interoperability with Excel to recreate your model in Robot, or again read data directly from Revit elements (even imports from different platforms) and create an analytical model in Robot.

Look at the SDK in Robot if you want to know what you can do. And remember, if you are not having fun in coding, you are doing it wrong.