Saturday, July 18, 2015

The Revit Saver's "Learning the Revit API" Resource List

I have recently become fascinated with learning the Revit API. I started to attempt learning it back in November of last year; however, became overwhelmed. I decided instead I would take baby steps at grasping the concepts. That seemed to help a lot. I began with learning how to use Dynamo, and it has immensely helped our office with automating tedious tasks that we have to make on a daily basis i.e. sheet making, parameter changing, and even group placement. I love how easy Dynamo has helped me talk to the Revit API in a more approachable manner. I have reached a point more recently; however, that has pushed me to step it up to the next level. Instead of relying on strictly nodes or facades of codes that exist in Dynamo, I have decided that I could accomplish way more through coding the processes. I am going to start by coding the tasks that could be simplified through a string of those processes nested into an addin button. All this has brought me back to ground zero of learning the Revit API through Microsoft's Visual Studio. As I progress my learning and find more resources for this I intend to keep track of it on this blog. To start here are a list of resources provided by Harry Mattison that I have found immensely valuable at easing my transition into this coding mentality.

I would highly suggest starting here because this provides the most amount of information at once at a pace that's perfect for beginners... Also on this page is the Revit SDK. This set of information has the tome "The Revit API". This document contains all the code behind every single item you can search. Dig deeper into the SDK.

Not many people realize that Autodesk has provided a good foundation of knowledge right into the help document. This resource is very user friendly and has a lot of valuable information.

Harry Mattison's Blog is a great resource. His classes are a bit pricey; however, the highest rated across the boards by beginners who wanted to learn the API.

Jeremy Tammick's Building Coder Blog is an exceptional resource as well, and is constantly being updated. The RevitLookup tool is also immensely helpful (provided in the second link)

Jeremy Tammik posted this article on his blog back in June of 2014

Excellent Resource for illustrated Revit API codes

I intend to continue growing this list as I learn the API, and keeping everyone up to date as this list progresses. Everyone learns differently, but this is what I have found to work so far for me in aiding me down the right path of eventually learning the Revit API!

Also if anyone has any other additional information they would like to add to this list for beginners send it this way!

Revit Technology Conference North America 2015

This will be my first time attending RTC North America. I'm very excited with the class schedule I've picked out, and looking very much forward to networking with all you talented professionals! I figured I would post my personal schedule and if anyone of my blogs followers wanted to meet up to network you would know where to find me! I intend to post a summary of the event after I get back along with pictures! Have safe travels and I look forward to seeing all you at the event!!!

The Revit Saver's RTC NA 2015 Schedule:

  • Thursday, July 23, 2015
  • 9:00 AM - 9:30 AM
    Chairman Introduction
  • 9:30 AM - 9:40 AM
    Autodesk Sponsor Address
  • 9:40 AM - 9:50 AM
    Platinum Sponsor Session
  • 9:50 AM - 10:00 AM
    Keynote Sponsor Address
  • 10:00 AM - 11:10 AM
    Keynote Address: The Revitlution
  • 11:30 AM - 12:45 PM
    Programming Revit MEP? Say It Ain’t Dynamo!
  • 1:45 PM - 3:00 PM
    A Placeholder in My Heart or MEP Efficiency Via Generic Content
  • 3:15 PM - 4:30 PM
    Mantis Shrimp: Navigating Between Dynamo (Revit) and Grasshopper (Rhino)
  • 5:00 PM - 5:45 PM
    Revit + | Project Performance
  • 5:45 PM - 6:30 PM
    Glorious Gadgets
  • 7:00 PM - 9:30 PM
    Welcome Function proudly sponsored by ArchVision
  • Friday, July 24, 2015
  • 9:00 AM - 10:15 AM
    Everyone Is Doin’ It… How to Differentiate Your BIM to a Building Owner
  • 10:45 AM - 12:00 PM
    Lab: Advanced Content Editing for Revit MEP Users… and More (Classroom seating)
  • 1:00 PM - 2:15 PM
    It's Designed, Now What? Revit Templates and Processes for Contractors
  • 2:30 PM - 3:45 PM
    Everything I Wish I Knew About Piping
  • 4:15 PM - 5:30 PM
    The MEP Roundtable
  • 7:00 PM - 10:30 PM
    Friday Evening Function proudly sponsored by Chaos Group
  • Saturday, July 25, 2015
  • 9:00 AM - 10:15 AM
    Integrating Complete Duct/Pipe Flow and Pressure Analysis Into Revit MEP
  • 10:45 AM - 12:00 PM
    The Path to Enlightenment: Revit Data Analysis
  • 1:00 PM - 2:15 PM
    BIM 'N Out: Because That’s What Revit Schedules Are All About
  • 2:30 PM - 3:45 PM
    Lab: Revit MEP construction workflow (classroom)
  • 4:15 PM - 5:00 PM
    25 Apps & Add-Ins for Revit and Workflow
  • 5:15 PM - 6:00 PM
    Wrap Up & Top 10
  • 7:00 PM - 11:00 PM
    Gala Dinner proudly sponsored by Revizto

Wednesday, July 15, 2015

Harvey's Residential Plumbing Fabrication to Construction

Justin Butcher - Selby's and Jay Ayala - Autodesk
July 15th, 2015

Today was our first attempt at integrating our Autodesk Revit prefabricated plumbing assemblies in the field through the utilization of a TopCon LN100, Autodesk's Point Layout and BIM 360 Glue Software. Through many months of preparation, development, and determination we have developed our plumbing assemblies to be functional models that are accurate representations of the physical parts our plumbers build with everyday. This is all achievable thanks to SysQue and Building Data's content to ensure accuracy of our components, and in turn an accurate deliverable to the field for construction.

Thanks to Jay Ayala - Autodesk MEP Technical Specialist and Justin Butcher - Selby's Bozeman, Montana for making this reality happen, we are now able to understand how to push our process to the next level of construction!

Determining the TopCon LN 100's height
We first began by placing the tripod in a functional location on the site. This location needed to be free from workers and other people on the site, so that it wouldn't be bumped for re positioning later. Based on our careful and efficient placement of the unit, the concrete form makers were able to continue their jobs while we began to calibrate the machine. This process took about ten minutes of figuring out where we wanted to zero in, measuring the unit and poles location above the ground, and then choosing the two points with the pole. After locating these two points we were ready to start placing points. Points that originally were specified in our office based on the architectural plan-set. The beauty of these points is that we are able to leverage the selection of points out in the field to match the points generated from the computer. This allows us to make adjustments in the field that may be changed due to construction related reasons, or simply things unaccounted for in the plans. This in turn dials in the designs coordination with the field. Allowing our design to coincide with the data in the field by leveraging each other to provide feedback to the design team. The amount of time saved just from pulling lines is incredible. In a matter of thirty minutes we had half of our points placed, and were quickly getting the hang of the setup.
TopCon LN100 Robotic Total Station
Determining the diamonds height

Prefabricated Assembly
Revit - SysQue - Building-Data Content

Jay Ayala helping place flags

(Left) Tyler Graff placing initial points for zeroing in the laser.
(Right) Bob Harvey, Jay Ayala and Justin Butcher dialing the TopCon LN 100 in to the points.

When all the points were placed, through the utilization of labeled sprinkler flags, we were able to see all the points in perspective and relationship in the field. Not only did this ensure us that the contractors are now set to lay their pipe, but it also ensured us that the design team had accurate data for further coordination of the design. This process proved itself to be efficient at eliminating much of the errors that could be made from pulling lines in the field originally, effective at answering the questions that could arise from inaccurate plan sets, and at coordinating the unknowns of the drawings between the designer and the application of those designs in the field.

The Revit Saver's Compiled List of Dynamo Learning Resources

I happened to stumble upon this exceptional list of learning resources for Dynamo. I am currently in the process of learning it myself, and finding resources to further my knowledge on it has been slim pickings. Thanks to amoursol on this may be one of the more complete lists of resources available on the web. None of the links are transferable from the post, so below the post is strictly an overview of his post; however, the link to where the links are actually available is available below.

Overview Courtesy of amoursol on

Dynamo Learning Resources

This post is intended to be a learning resource that simply links to external blogs/websites and Youtube channels on the subject of Dynamo.

Note: As of release 0.8.0 and Dynamo Studio, Dynamo is in a reasonably stable state and the node nomenclature should remain consistent. However, please bear in mind that they are still subject to change as it's a constantly evolving program.

Note: When following older tutorials, nodes will exist in different forms and/or names but should be relatively logical to search. Dynamo has undergone a an entire rebuild more than once in it's short lifetime.

Websites/Blogs: - Forums containing very knowledgeable people on the subject of Dynamo. Dynamo developers frequent this forum.
Github - Github is where the development team are hosting all of the open source code for Dynamo.
Dynamo Primer - A comprehensive guide to visual programming, covering best practices, cross-disciplinary programming applications, computational geometry and many more topics.

The Simply Complex - Marcello Sgambelluri's blog about all things Revit/Dynamo. He frequents this forum too!
The Proving Grounds - A website from Case's Nathan Miller (Author of the Rhynamo and Lunchbox Dynamo nodes). - Konrad Sobon's website about practical Dynamo workflows and Python development (Author of the Grimshaw and Archi-Lab nodes as well as Mantis Shrimp).
Enjoy Revit - HyunWoo Kim's website for Revit and Dynamo. He frequents this forum too!
SixtySecond Revit - John P's website (Author of the Rhythm Dynamo nodes) with 60 second tidbits on all things Revit and Dynamo
AEC, You and ME - Julien Benoit's blog, author of the Steam Nodes, with an RTC presentation and various thoughts on the Construction industry.
What Revit Wants - Luke Johnson's all things Revit blog including a comprehensive post on 15 Practical uses of Dynamo.
Revit Dynamite and Ammo - Jostein Olsen's Dynamo blog (Author of a few custom nodes) including some nifty tips and tricks, python code and his thoughts on the world of Dynamo.
Revit Beyond BIM - Dieter Vermeulen's blog with a focus on the structural engineering side of Dynamo.
EMADALQATTAN Parametric Modelling - Emal Al-Qattan's blog post about the modelling of the Yas Viceroy Hotel in Abu Dhabi.


DynamoBIM's Learning Videos - A series of Videos from the DynamoBIM website. They are under the process of being revamped but are still very useful.
Structural Computational Logic by Håvard Vasshaug - A tutorial that runs through the creation of an Adaptive Component, then uses Dynamo to place said component.
Case's Door Renumbering - A door re-numbering tutorial by William Wong from Case Inc.
Håvard Vasshaug's Random Parameter Values - A tutorial that showcases using Dynamo to sporadically resize tree families.
BIMTecnicheParametrichediProgettazione - Claudio Vittori's Adaptive Component placement tutorial.
Getting Bottom of Pipe (MEP) - Mohammed Mahboob's simple tutorial on a difficult OOTB Revit problem.

Youtube: - A Facade Surface tutorial series by Andrzej Samsonowicz.
HyunWoo Kim's Channel - A notable collection of Revit and Dynamo resources.
Zach Kron's Channel - One of the Dynamo developers. Most of his content is with previous releases but it is an invaluable learning resource.
Håvard Vasshaug's Channel - More examples of what he's done than tutorials but totally inspiring. Has a structural bent.
Jeremy Roh's Channel - An in-depth collection of tutorials that use the his website for additional tutorial resources.
Konrad Sobon's Channel - The creator of Channel consists of in-depth tutorials with a particular focus on his own Python node development.
BIMtopia - The youtube channel of Glenn Katz from Stanford University. He has a structural Engineering focus and some very in-depth tutorial sessions on Dynamo.

Twitter: A lot of people doing exciting things in the Dynamo world use Twitter to post their Dynamo thoughts and visuals.

Below are a list of people worth following:

@DynamoBIM - Dynamo itself (Of course!)
@marcellosgamb - Marcello Sgambelluri
@ZachKron - Zach Kron (Dynamo developer)
@elayabharath - Elayabharath
@MattJezyk - Matt Jezyk (Dynamo Developer)
@a_dieckmann - Andreas Dieckmann
@arch_laboratory - Konrad Sobon
@ColinMcCrone - Colin McCrone (Dynamo Developer)
@BigBadBIM - Eric Lewis
@archinate - Nathan Miller
@BIM4Struc - Dieter Vermeulen
@solamour - This is my own twitter feed. I post about Dynamo among other things - almost all Architecturally related.

Python: is the Code Language used by Dynamo
Python Migration - This is a Wiki page on the Github talking about Python code migration between releases and how to start creation of Python Nodes.
MITOpenCourseWare - This is an Introduction to Computer Science and Programming in Python (Not Dynamo specific) from MIT under their edX platform. It goes over the basics of Python though to deeper concepts and covers common pitfalls when using the language.

Other: is a few websites that will help you with your Dynamo exploration

Wolfram Mathworld - A preeminent mathematics resource that will help you understand mathematical concepts for use in formulaic Dynamo data control and manipulation.
Last edited by amoursol; Yesterday at 07:05 AM. Reason: Additions: Mohammed Maboobs MEP tag tutorial

Monday, July 13, 2015

Dynamo Fueled Fabrication Part Two

Attached is a Screencast, of a very rough example, of the process I’ve developed for our firm to be able to automate our assembly group placement referenced to a point layout machine in the field. The main goal is illustrated in more detail in Part One. I am looking to streamline this down a bit more because I am new to dynamo and may be missing out on an easier way to make the same thing happen. I see value in this script for not just Plumbers, but also Landscape Designers, Interior Designers, Architects, and Engineers. I can see this script being used for as built landscape work with a total layout station as well. The skies the limit through collaboration and development of this group placement tool. I would like to credit SteamNodes for providing me with the Tool.PlaceGroupAtPoint node. It is the main driver here.
I would love to see what other people think of this, and what I could do to make this script even better?! For right now I feel like this is the best way, but I’m new to dynamo and would love to see how I could improve the script.  Attached is an image of my script below. I’m not sure that this will be displayed correctly, but if you need to reference the other pictures on the blog you can do so there. The article describes the overall workflow and process. Some things I would like to be able to do is rotate the placed groups based on North, South, East and West headings, or maybe by wall facing. I look forward to hearing your feedback! Thank you for your support and knowledge!

Best Regards,
Brian D. Nickel
Group Placement