A blog dedicated to tidbits of software information related to the AEC industry. Most tips and tricks are roughly 60 seconds because, "Hey who doesn't have 60 seconds".
*The views and opinions expressed in this blog do not reflect those of my employer.

Friday, August 14, 2015

Feel the Rhythm

feel the rhyme, come on now, it’s Dynamo time!
This post aims to summarize what Rhythm has available at this time. I admit this post is probably much longer than 60 seconds, but it has a lot of great information :)
I've been using Dynamo since I attended Autodesk University 2014 and it changed how I thought about Revit completely. Not only did I learn the basics, but I immediately set out on a journey to build awesome functionality primarily with what’s available to us in the OOTB (out of the box) Dynamo library.
|Enter Rhythm (maintain Rhythm in Revit with Dynamo) |
Back in February when I began bundling all of my custom nodes into a new package called Rhythm, I never imagined it would become what it is today. Currently it is #11 on the package manager and has 65 nodes and counting. These nodes include useful core functionality, tools and collectors. Once again most of my nodes use OOTB nodes within them (currently about 15 use some sort of python, often found on stack overflow)
The screenshot below shows all of the nodes currently available.
I also have a description below, if you are curious feel free to check it out!
All Upper
This is a tool that converts all of the items with text in a project to a standard of UPPERCASE. These items are chosen by tying in a Boolean (T/F) for each category you want to change.
Arrowhead Assigner
This tool will assign a specific arrowhead type to all categories selected. Simply type the name of the arrowhead style you want.
Level Element Collector
This will collect all levels in project and output some useful info. (Similar to others but no python is utilized in here)
Dash Remover
This will analyze all sheets for a dash after the prefix “AE” and remove it if present. This is important because NCS states that no dash shall be used when using the “AE” prefix.
This node will output the percentage of glazing per orientation of your model. It relies on exterior walls being exterior function and using curtain walls for windows. (typical standard practices)
Parametric Graphic Scale
This node will automate a graphic scale calculation in your viewports.Here's a blog post that shows how it works.
Room Element Collector
This is another collector node. This time for rooms, it output a lot of useful data and is similar to others available. (Once again, no python here)
|Core.Ayuda (Spanish for help)|
The nodes in this section are simply a bunch of helpers for various things. This includes; seeing if other packages are installed and a thisorthat node to toggle two options.
These nodes output some pretty useful system data. This includes; current user and current user appdata location at the moment.
These node were made as an experiment. My goal was to use the web request node to see what I can pull from a website. The example I used was pulling quotes from brainyquote.com. After making several nodes, I made the node searchable and now you can search for quotes from any author on their site.
I won’t go into details here, but Revit has an ability to insert Unicode characters in certain places. These nodes were made to supply them.
Most of these are self-explanatory. They are all simple list stuff that I found I needed throughout this process.
I began creating these nodes to add a lot more string functionality to Dynamo. After I got to the Remove prior and Remove after I discovered Mark Thorley’s package Zebra! He added a lot of the functionality I wanted so my string area somewhat halted. (Try out the flip reverse to have fun)
After reconfiguring how I name new nodes, this is where all collectors will live from now on. Currently there are 8 collectors in Rhythm, 6 of them live in this category.
This is where some pretty useful Revit document nodes live. After Revit R2 came out we were allowed to create worksets via the API. That is in this section. (Coming soon is a rename worksets one)
This includes some useful Revit element data. This includes an element type that uses no python, but all OOTB nodes. I also have an Element.Room node in there.
These are all useful nodes which manipulate text elements directly without converting to a string first.
I am starting to build nodes that query walls in this section. Walls are a big part of what we do, so they will be a big part of Rhythm too.

This is probably my favorite section, so I will describe the nodes. Currently a lot of people have things to say about Dynamo can’t do this and that. This section represents the ability to alleviate these frustrations with OOTB nodes.
Does what it says. Simply input your element and a list of parameters that have a comma between them.
CaSeiNSeNSiTiVe nodes
These nodes were made to show that Dynamo doesn’t have to be case sensitive. This is a common complaint in the Autodesk University Labs and RTC Labs by a famous cow man! I spoke with the developer and the case sensitive nature isn’t a glitch, but it’s by design. Either way we can fix this with OOTB.
TypeOrInstance nodes
These nodes show that you can set type or instance parameters for elements very easily with some thought.
Override nodes
We wanted the ability to override annotation symbols (projection lines), so we built it.


  1. I am new to dynamo. Is there a way to assign a value to a parameter to walls based on the N,S E,W direction of the wall using your package?

  2. Since it is sorting the walls by direction. Yes. Each output needs to go to SetParameter by Name