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!
Thanks to Marcello for getting the word out! DynamoBIM training is offered online at CADlearning! This is the beginning to something great, and a great way to start learning Dynamo and Revit!
As a student and mechanical design professional I simply can't express how important it is to have a list of learning resources. Before I start to learn any new piece of software I always begin compiling a list. My list exists within my internet browser as a series of organized bookmarks. I make sure that I am logged in on any device I use, for utilization of this list, and it makes it that much easier to stay connected with whats up to date.
More recently I have began blogging. Blogging allows me to have a feed of other people that are keeping Revit Users like myself up to date. This list is also an excellent resource, and allows me to stay up to date as these individual post all of this content.
One important thing to note about this list is that it is constantly evolving. Much like the individual that is learning Revit. In order to go above and beyond you have to continue to learn! This mentality will help you evolve your Revit skills and learn things that simply would be impossible to learn without staying up to date with the technology!
Here is a look at some of my current resources that help me stay up to date with Revit.
Linked In
1.) Linked In "Revit Users" group is a great resource to stay up to date. Brian Meyers started this blog, and has helped over 70,000 Revit Users stay connected in an open forum of questions and learning material. If you have a question about Revit, it's very likely that it's been asked or addressed in this forum.
YouTube
2.) YouTube Subscriptions are an excellent way to stay up to date with what is online. More recently I have come across Jeremy Roh's Learning Resources. Jeremy Roh is a professor at the Univesity North Carolina - Charlotte, and his classes are all posted online. He has over four years of classes posted online. These lessons are simply priceless. I have found that starting in his BIM Methods Fall 2014 class and then continuing to his Computational Design Spring 2015 lecture series to be the most worth while.
Throughout this list of YouTube Subscriptions I have several videos that I've used to learn Revit. I would suggest following each one! You may find it helpful to answer a lot of the questions I had when I started learning Revit or as I came across a problem.
Blogs
3.) Revit Blogs
To the right of this blog I have the feed of many blogs I follow. I would highly suggest adding these to your own! It will be easy to stay up to date without having to search for information. This list, as mentioned before, is constantly evolving. My list may be helpful to me, and not as helpful to others. Just keep adding to your list, and keep on learning!
I will add to my blog list as I find more valuable resources!
Have fun and be patient it takes time, but it will pay off!
I'm always looking for new resources too, so feel free to share some of your favorites with me!
Steven Shell has some remarkable classes on Revit layout and graphics. This is very beneficial to any students or professionals looking to make their graphics pop!
The following is a list of resources from Steve Stafford's Blog. Thank you Steve!
Blog Listing - Revit Focus
Note: I've moved blogs that have not posted in the last 6-12 months farther down the list. A few URL's are not found or not available anymore, I deleted them entirely. If your blog is not on the list just let me know. An RSS feed will save you a lot of time in the future if you just add these to your feed, you'll see their new post in your updates as they occur instead of remembering to go to them yourself. Happy blog browsing!
Revit MEP Plumbing Assemblies - Dynamo Fueled Fabrication
Disclaimer
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.
Introduction
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.