Thursday, July 9, 2015

Dynamo Fueled Fabrication Part One

Revit MEP Plumbing Assemblies - Dynamo Fueled Fabrication


The main purpose of this article is for an evolution of residential construction assembly creation, field placement, and to learn from professionals in the industry. If something in this article may be done a different way, a more efficient way, I would love to learn how. Through this collaboration and coordination we can better our industry and only become more efficient together.

My name is Brian D. Nickel. I'm a Mechanical Designer by trade, and a senior in architecture school at Montana State University in Bozeman, Montana. I have been using Revit since 2006, where I first started on Revit 6.0. I have been using the software religiously since then, and have been continuing my learning through my architectural studies and through the workplace since. More recently I have been with a local plumbing and heating company, "Harvey's Plumbing and Heating" in Bozeman, helping get Revit up and running in the office. I decided that I wanted to challenge to my Revit skill-set by leveraging what I've learned through architectural firms towards learning more on a subject that was a bit out of my comfort zone. It's been immensely rewarding.
Harvey's Plumbing and Heating works on a wide range of high end custom residential homes. The homes range anywhere between 6,000-30,000+ sq feet. The following process may seem impractical on an implementation side for these smaller homes, but have proven to save time and understanding in the field. It has also led our bids to be immensely more accurate, and allowed for efficiency's of communication in the field.
I began in November 2014, and over time I have been developing ways of integrating our database with Revit. I wanted to be able to use the data that's in our bidding process to be passed through to our design to assist our models, with information, for a hand-off deliverable to our plumbers in the field and eventually to the owner.
Since beginning in late 2014, we have had a few victories along the way. These victories have helped us evolve our process, and are quickly getting us to where we need to be. We have built several Revit based assemblies of our plumbing systems, courtesy through the utilization of SysQue, and have them in our template file for placement. 
Revit MEP Workflow
Harvey's Plumbing Assembly Library Example - (Above) Each plumbing assembly is referenced to our accounting software which in turn is tied to an assembly number. This example illustrates our kitchen sink assemblies and how our assemblies look after placement. We have other categories i.e. tubs, showers, toilets... etc. Fittings courtesy of BuildingData and automated though SysQue (Below) Harvey's Kitchen Loop Vent.
The next goal, after getting the groundwork laid with our template, was to figure out how to tie this data to the deliverable in the field. We began by giving spool sheets to one of our plumbers to take out into the field. We realized quickly that the problem with doing this were design changes out in the field or clashes i.e. studs, floor joists, and roof trusses that are simply not accounted for in the architectural drawings, and/or in the office due to the structural engineer not having a 3D model to coordinate with. One way we began to mitigate this was by contacting our local lumber yard to figure out what software they utilized for their roof trusses and floor joists. They let us know that they use MiTek Sapphire. After some research we realized the structural framing model was modeled in 3D, and through coordination, communication, and now collaboration we have opened the door to allow for those files to import into Revit by simply requesting a 3D .dxf from the local lumber yard. The beauty in this is that the architects model can be leveraged to coordinate with the 3D structural drawing, and in turn our mechanical drawings can fit right in place. Of course, on the other side of this coin is the event that you receive a two dimensional drawing, or if the structural engineer has provided only a two dimension drawing and isn't order the lumber from a 3D generated model. We leverage as much as we can into understanding the drawings, but this leads us to how can this be fixed or adjusted in the field?

Coordination of Plumbing Assemblies& Branch Lines w/ Floor Joists

After a long conversation with Jay Ayala, with Autodesk, we were able to get a little more clarity on this particular problem. He suggested a point layout system that would allow us to leverage the data in the field back to our design. We are scheduled to have Jay on site next Wednesday July 15th 2015, and from there we will be able to fully determine whether this method will work for our firm. Below is the video of our conversation, and a little more clarity to what was written above.
After this conversation a few questions ran through our heads. Well... how can we leverage these points into our plumbing assemblies, and how can that data adjust to our current workflow? Also, what can we do to our current workflow to allow for this sort of interaction between field communication and drawing communication. As for now the some of the questions remain unanswered, and that's why I'm posting this article! After this conversation we downloaded the trial for Autodesk Point Layout and started to figure it out a bit. The sleeve placement options as shown in the video are just as easy to pick up for an avid Revit user. This led us to think a little more outside of the box.
Dynamo Scripting for Assembly Placement
After diving into Dynamo, I was able to make a discovery of how we might be able to leverage it, into the equation, to resolve some of these questions. Bare in mind I am not a coder, and have only done a little visual scripting in college using Grasshopper for Rhino. Basically, what I'm trying to say is, if something I've done can be achieved in a better script I would love to see it and implement it! 
First I decided to see how I can select the points and place an assembly.
  • Place a GTP Sleeve Pt in each location of the assemblies.
  • Have Dynamo choose those points to place the groups and place the assembly tied to the selected point.

Place Group by Selection(s) - Selecting the node and placing the group that is listed in the String. All groups must be obviously loaded into your Revit project.

The above node worked well, but we ultimately wanted to be able to select each sleeve in the project and have that tied to every point in the project. So, I began stringing some lines and thinking about the end goal with a starting point in mind. It led me to a connect the dots and in turn a successful solution. I decided to follow these steps this time around.
  • Select the model element GTP Sleeve Pt
  • Attach the string code block "PointDescription" to allow for the point description to fuel the data being used for placement of the families. The PointDescription parameter within each sleeve family contains the values of our matching assemblies on file. Referenced back to the original accounting software.

Placing Multiple Groups Associated to a Parameter.

The above method allows us to count the number of groups in the assembly, provided by the master plumber, and then to type a sequence code block that then fuels the other code blocks to reference the point description and family point locations. In turn all this data places the groups on the associated sleeve that the family needs to reside. Ultimately we are looking at automated assembly placement and rotation after placement. Associated potentially to another parameter. At this point in time it hasn't been further developed.
I still believe there may be a more streamlined approach towards accomplishing this, but the goal is to allow for the point data in the field or manually entered points, to automate our assembly placement. This data ensures that our plumbing assemblies are being placed in the right locations, and also allows for that coordination between the bidding, design, field coordination, and fabrication all fueled by Dynamo!
Special Thanks
Special thanks to Marcello Sgambelluri for your resources for new dynamo users like myself, and for listening to my ideas. Also for providing me with some feedback. 
BuildingData - Lewis Wolcott - For clearing up the unknowns about your content and providing us with data that actually works.
SteamNodes for allowing us to place our groups with the PlaceGroup.ByPoint node.
Contact Me
Brian D. Nickel


  1. Bozeman eh? not exactly LA or NYC! who would've thought this level of sophistication would exist in what to many would be a backwater. Of course having driven through Bozeman many times I know it is a beautiful spot. And you can fly the friendly (if somewhat unreliable) skies from the airport there.
    For those of us in a larger market area the variety of truss joist suppliers might present more of a challenge. Revit Structures not the answer for sure.

  2. Bozeman eh? not exactly LA or NYC! who would've thought this level of sophistication would exist in what to many would be a backwater. Of course having driven through Bozeman many times I know it is a beautiful spot. And you can fly the friendly (if somewhat unreliable) skies from the airport there.
    For those of us in a larger market area the variety of truss joist suppliers might present more of a challenge. Revit Structures not the answer for sure.

  3. شركة تتميز بجميع الخبرات في تقديم اعمالها المتميزة في الكشف عن التسريبات من خلال شركة كشف تسربات المياه بجدة التي تعطي كل ما لديها في اصلاح العديد من المشاكل التي تحدث نتيجة كسر او عطل مفاجئ في امدادت المياه لذلك ننصحم ان تعتمد علي شركة كشف تسربات بجدة لديه سباكين وفنين لديهم الخبرة في حل هذه المشكلة بكل سهولة كما نمتلك لديها القدرة علي تنفيذ اعمال العوازل من خلال شركة عزل اسطح بالرياض التي تعالج تسريبات المياه في الاسقف والحوائط كما نقدم خدمة العزل السليمة للخزانات الارضي والعلوي الخرسانية بواسطة فني متميزة لديه القدرة علي معالجة كل ذلك بسهولة من خلال شركة عزل خزانات بالرياض تمتلك مواد ذات جودة متميزة