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, October 2, 2015

Select #Revit Model Elements by Curve with #DynamoBIM

Have you ever wanted to renumber grids in Revit with Dynamo or do another sequential action just to find out that the elements were created “out of sequence”.

Take a look at the grids below. They were created in the order of the number, which means the element ids are also in this order.

imageIf you know how Dynamo thinks, it will sort these by Element ID. Which is normally a good thing.

imageAfter following a tutorial from William Wong at Case I developed the next custom selection node in Rhythm.

  imageNotice how the element IDs are in a different order? They are in the order of the model line I drew through them!

ModelCurveSelect

This is very useful for renumber processes on various categories in Revit. Currently it is tested on walls, grids, rooms, and doors. But it should work on most any model element. 

 

Check out the video below for some more of it in action and get it on Rhythm.

Thursday, September 17, 2015

Clearing Backup Revit Family Files with #DynamoBIM

Have you ever been creating Revit families, making edits and saving to find your directory looking like this?

imageIt can become a huge mess and is a pain to clean up. (Unless you have some programming knowledge)

This made me think, how can Dynamo help me out?

Enter the File.Delete node.

imageThis node is an out of the box Dynamo node and is super dangerous and powerful! Remember uncle Ben?

Picture1With that said I present to you the Rhythm.BackupRFADeleter

image This node takes a directory as input and a boolean to run it. After running, it shows how many files it deleted. Currently it only deletes files that end with the typical backup suffix in Revit. (Family1.0001.rfa)

imageAnd here is my nice clean directory!

imageAs always, get it on Rhythm and use with care! :)

-johnp

Wednesday, September 2, 2015

The poor man’s dropdown for #DynamoBIM

 

Dropdowns are awesome! They enable us to set options for users to toggle between. But currently in Dynamo if you want a dropdown node you are pretty limited. You basically have access to dropdowns in OOTB nodes or you can learn yourself some fancy C# programming.

2015-09-02_14h24_58

I present to you, the poor man’s dropdown!

 imageBasically all I am doing is using the built in family types node with my options inserted as types of an empty detail component. The detail component is also named “!” so it is forced to the top.

imageAfter I select the option I want I get the name (as a string) and tie that into my data! IN this example a wall’s mark parameter.

PoorMansDropdown

The downside is I can then assign any loaded family type as well. But if we stick to the “!” area we are good. Hacky? Yes. Exciting? Definitely!

Have fun!

-johnp

Tuesday, September 1, 2015

#DynamoBIM 0.8.2 is awesome

 

Yesterday I downloaded the brand new, hot off the press Dynamo version 0.8.2!

Once again the team has managed to pump all kinds of great content into the newest release. Here are a few of my favorites.

NODE2CODE

This new feature enables us to converts our nodes in our graph to design script code with two clicks. (Right click> node2code) It’s super robust too, check it out below on my Percent Glazing by Orientation node!

Node2Code

Manage Nodes and Package Paths (Localized Packages)

This is a huge addition. Not only can we keep proprietary content inside our network we can now “deploy” needed packages to all of our users.

I see the deploy option being a huge benefit in itself because I believe sharing is what makes this community so awesome.

2015-09-01_07h39_59 2015-09-01_07h41_38

That being said, my office now has an internal package for some workflows that I don’t see being useful to everyone. Now Rhythm has some Rhyme as well :)

image Also here’s a screenshot of what I am deploying to all of our users. All great packages to have!

image

In canvas search (an oldie but goodie)

The release notes say in canvas search was added, but it was in 0.8.1? Either way it is still as amazing as it was before!

image

That’s it for now. Currently I have a few things I am working on to share very soon. Until then, everyone go download the new version of Dynamo and have fun!

-johnp

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.
2015-08-14_08h40_10
I also have a description below, if you are curious feel free to check it out!
|Tools|
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.
Rhythm.PercentGlazingByOrientation
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.
|Core.OS|
These nodes output some pretty useful system data. This includes; current user and current user appdata location at the moment.
|Core.Inspiration|
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.
|Core.Unicode|
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.
|Core.List|
Most of these are self-explanatory. They are all simple list stuff that I found I needed throughout this process.
|Core.String|
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)
|Revit.Selection|
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.
|Revit.Document|
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)
|Revit.Element.Query|
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.
|Revit.TextElement.Actions|
These are all useful nodes which manipulate text elements directly without converting to a string first.
|Revit.Elements.Walls|
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.

|Revit.Element.Actions|
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.
Element.GetMultipleParametersByName
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.