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.
Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

Tuesday, December 6, 2016

Override #Revit Interior Elevation’s Crop with #DynamoBIM

This is an update to an existing workflow previously discussed here, http://sixtysecondrevit.blogspot.com/2015/11/framing-interior-elevations-in-revit.html

Basically, it is faster and more stable!

Rhythm.OverrideInteriorCrop

This node takes an input search string of elevation types (interior), a line weight for all views and a Boolean to run.

overrideCrop(revised)

Part of the reason I haven’t updated this in a while is because the workflow was a beast! Initially the node was looking for the elevation marker in every view, seeing if it exists, replacing it and finally committing the override. Now it just finds the crop region as it relates to the interior elevation (investigate the node to see what I finally realized, I won’t reveal it here).

So far I have tested this on a healthcare project that had over 350 interior elevations! It did take a moment to run, but it completed the change!

override

Please keep in mind that this completes this process for all interior elevations in the model. I f there is an interest, I will make a specific one that allows the user to choose sheets.

Have fun!

johnP

Monday, December 5, 2016

Color Picker in #DynamoBIM using #Revit API

For a long time now I have wanted to look into building a color picker for Dynamo. Primarily because the previous package I utilized, hasn’t been updated for the latest version of Dynamo. This was of course the great UI++ package from the badmonkeys. (This package is awesome by the way. Adam, please update with Konrad’s code ASAP Smile)

After much research and investigation, I stumbled upon this API method in the Revit API.

image

This was a revelation! Finally I can create a color picker without importing a bunch of Python libraries. Even better is, that this supports Revit color output as well.

I can’t wait to see what people use this for, especially with mandrill and dynamo player.

colorPicker

Have fun!

-johnP

Monday, November 7, 2016

Open #Revit files in the background with #DynamoBIM

I have been working on some pretty cool nodes in the background, that deal with opening Revit files in the background.

Document.BackgroundOpen

Document.BackgroundOpen is now in Rhythm. This node is really special, because it enables all sorts of cool operability with Revit files that are not currently open otherwise. Pretty much any input that takes a document can use this node.

Here it is in action, opening a project in background.

backgroundOpen

Why is this exciting? Well first of all this method can be used to Bulk Upgrade Revit files.

This process + another new node can also be used to copy elements from another project. Like wall types!

Enter, All Elements of Type in Document and the Element.CopyFromDocument Nodes

All Elements of Type in Document

Element.CopyFromDocument

And here is that process in action

loadFromFile

Have fun!

johnP

Monday, October 31, 2016

Pick Selection + Text Input + Dynamo Player = Awesome

So, I have been playing around with Dynamo player quite a bit since it came out.

Initially I was a little bummed out that any OOTB nodes for selection were not working. Luckily this is not true for custom python nodes as pointed out on the forums here, https://forum.dynamobim.com/t/revit-2017-1-dynamo-player/6729/12?u=john_pierson. The funny thing is, this example actually used one of my nodes from Rhythm!

After the ability to select was demonstrated, I decided we neeed some text box input as well. After dissecting a few of Dimitar’s awesome nodes, I finally came up with a solution.

Enter, the Rhythm.TextBoxInput node.

Rhythm.TextBoxInput

This node will provide a popup that allows the user to enter a string to use for whatever is needed.


See it in action below, (there is audio so be warned).

Get it in the latest version of Rhythm and have fun!

-johnP

Wednesday, October 26, 2016

Bulk Upgrade #Revit files with #DynamoBIM

We recently needed a workflow to bulk upgrade quite a few Revit files and I didn;t want to do that manually! Luckily, I have been working on some pretty cool application nodes for Rhythm and they worked great in this workflow.
First, let’s see this in action. Basically, we feed the node a directory’s contents (file paths), and it will chug along. The files in this example are from Revit 2016 and the graph is being run in 2017.
bulkUpgrade

Next, what makes this possible?
This is actually made possible with two new nodes that I will be adding to Rhythm by the end of the week.
Document.BackgroundOpen
This allows us to open a revit file without it being visible to the end user. (Awesome!)
Document.BackgroundOpen
Document.Close
This allows us to close the documents we opened with a save option. (Great for upgrades)
Document.Close
Stay tuned for more workflows using these nodes!
And her is the graph I used! (Download the latest version of Rhythm first) https://drive.google.com/open?id=0B3oLhdhnXmutSlJncXZfbUxzYzA
-johnP

Thursday, August 4, 2016

Get Joined Elements in #Revit with #DynamoBIM

If you didn’t know already, I really like twitter for being in touch with the Revit and DYnamo community. Every now and then a great idea is generated and it offers a great opporunity to explore a solution.

Recently this one came up on twitter.

image

After some investigation of the Revit API, I found this little gem.

image

Which lead to this workflow

2016-08-03 12_52_43-Dynamo


Which lead to this reaction!

image

The new node allows user to get joined elements to the input element to allow for all sorts of fun stuff. In Aaron’s case, it wsa so his door’s code compliance can be automated.

image

Have fun!

-johnp

Wednesday, June 15, 2016

Get #Revit Beam System Members with #DynamoBIM

A question came up at my firm recently regarding how to quantify the amount of beams a beam system contains in Revit. Currently, this is not easily accessible through the UI, but luckily there is an API method for obtaining the members of the system.

This is where Dynamo and python come into play.

StructuralBeamSystems.Members

This node is now in Rhythm, enjoy!

-johnP

Tuesday, June 7, 2016

#Revit Space and Room Tag Host with #DynamoBIM

Recently I was talking with Marcello on the Simply Complex Podcast about the lack of annotation nodes in Dynamo. After a question also came up on the Dynamo forums, I decided to add these two useful nodes to Rhythm.

SpaceRoomTag.Host

This enables us to do some fun stuff based on the tag elements now! And yes, these are made with Python!

-john