Ryan Lenihan

Getting Started With Hydraulic Pipe Sizing in Revit

I’ve been poking my nose around Revit Forum a little more lately and a post in the MEP forum prompted me to write a little bit about hydraulic pipe sizing. I speak with a lot of guys in MEP locally and they give me the impression that they think pipe sizing is some kind of dark art, in actual fact it’s not that difficult at all.

In my response to the original post, I just created some generic plumbing fixtures to show the example, but I thought I’d take some time to go into a little more depth on sizing domestic hot and cold water services, my examples are going to be somewhat based around AS/NZS3500 Parts 1 and 4.

The Basics of Pipe Sizing

Before you begin, to perform pipe sizing for a plumbing system, you need to have a good set of families that have either flow rates or fixture unit ratings applied to the piping connectors. A good set of families are the building blocks of good pipe sizing results.

In the past I’ve mentioned that I have these basic families for plumbing fixtures that are simply place holders for the pipe connections. There is no need for elaborately modelled fixtures in an engineering model. If you like, you can even copy/monitor the architect’s fixtures and then map them inside your model to your engineering fixtures. The idea of these plumbing fixture families is explained really well in an AUGI article that Dave Benscoter wrote back in early 2013.

 

The placeholders for the piping connections are controlled by parameters for height, spacing, diameter and offset from the wall (for drainage). A lot of these adjustments may not be required on most jobs, but the ability to take the modelling further is there ready to go when needed. The family allows for automated tagging of fixture abbreviations, pipe sizing calculations and if you go to the effort of making a family type per specified fixture, you can generate accurate penetration drawings as well.

Another alternative that I have used is rather than model all the pipework up to and including the plumbing fixtures is that I will have an isolation valve box family where I fill out the fixture units of the fixtures it is serving. Just remember, if you’re doing this and you’re entering a flow rate it should be probable simultaneous flow – also called diversified flow – for which I usually rely on the Barrie Smith ‘Blue Book’.

If you’re using out of the box (OOTB) Revit families, check the loading units (which are called fixture units in Revit) and check that they match the requirements of AS/NZS3500.

In my example, the plumbing fixture connectors have their direction set to in and the hot water unit has the cold water set to in and the hot water set to out. The cold water inlet of the hot water unit also has an instance parameter where I can enter the downstream probable simultaneous flow.

You need to make sure that there are no open ends in your system, in 2014 and newer, you can use the Cap Open Ends tool if required.

2015-03-05_10-59-27

The small box in my example is to cap off the end, it is set to out as it is essentially the water connection to the site.

2015-03-05_11-22-45

2015-03-05_11-26-22

For the purpose of the demonstration, I’ve created all the distribution pipework at 50mm. The connections on the basins are 15mm and the hot water unit I’ve used is a Rheem 613050 so both the inlet and outlet are 32mm.

For the cold inlet to the hot water unit, you can set it up to work on either fixture units or a litre per second rating. If using a litre per second flow rate, make sure that it is based on a probable simultaneous flow value.I’ve used probable simultaneous flow in my example, which based on the Barrie Smith Blue Book is 0.21l/s

2015-03-05_12-17-29

 

Once you have all your pipework and fixtures connected, select the pipework that you want to size and you will see the Duct/Pipe Sizing icon on the ribbon.

2015-03-05_11-39-46

2015-03-05_11-50-11

The next step is to input the data of how you want to size your pipework.

The options available to you are to size by maximum velocity only, or you have the option to select either and/or maximum pipe friction in pascals per metre.

You can also set additional constraints using the drop down box, the options are calculated size only, match the connector size, or to use the larger of either the calculated or connector size.

Finally, you can also restrict the maximum pipe size that is allowed in your system.

I am simply going to size the piping based on a maximum velocity of 3.0m/s (AS/NZS 3500.1 Clause 3.4).

In the constraints section, restricting the sizing to that of the connector allows you to achieve the 15mm branch to a single fixture rule (AS/NZS 3500.1 Clause 3.5.2) however keep in mind that Revit will size the pipework as 15mm until the next branch (tee) fitting so if your fixture is further than 3m from a branch you will need to adjust the pipe size manually yourself. Revit will also oversize branches of pipework connected to a larger fitting as shown below with the HWU. You should always check your sizing results and never rely on Revit to do all the work for you.

As you can see, other than our oversized pipework from the HWU highlighted in red, the results are quite good.

You could argue that my 25mm incoming connection is too large to serve only 5 hand basins. The reason it sized to 25mm is because of my flow value on the cold water inlet to the HWU. If I change the cold water connection to use fixture units, and manually enter 5 fixture units, the incoming pipework is reduced to 20mm.

2015-03-05_14-46-24

Analysing Your Pipework Velocities With Revit

You can create a view in Revit that analyses the velocities of your pipework (amongst other things). This can assist you when reviewing your pipework sizing with easy to follow graphical displays of your pipework velocities. You can find the Pipe Legend tool on the Analyze tab of the ribbon.

2015-03-05_13-48-53

The results give an easy to follow display of your pipe velocities by colour, you can clearly see that the 32mm pipe from the hot water unit has a velocity of 0.9m/s

2015-03-05_13-44-20

 

Manually adjusting the pipe size to 20mm, you can now see that the velocity of the pipe exiting the hot water unit is now 2.7m/s or changing to 25mm, the velocity is 1.5m/s. Based on velocity, either pipe size is acceptable under the Australian Standards.

2015-03-05_13-45-04

2015-03-05_13-59-47

Creating a Pressure Loss Report

Finally, you can also run a Pipe Pressure Loss Report which is found on the analyze tab.

2015-03-05_14-02-43

The pressure loss report is generated in HTML format, I am simply going to select the cold water system only and I’m going to display the system information and the critical path.

2015-03-05_14-05-15

 

2015-03-05_14-08-48

The resulting report shows that we have 51.1kPa of pressure loss along the critical path. Referring back to AS/NZS3500.1 we require a minimum pressure at the outlet of 50kPa (Clause 3.3.2) which tells us that we need a minimum of 101.1kPa at our connection point.

Conversely because the maximum allowable static pressure at an outlet is 500kPa (Clause 3.3.4) if we had 600kpa available at the connection point we would need to install a pressure limiting valve to comply with Australian Standards.

 

Revit Underlay Settings Greyed Out

One of my modellers got themselves tripped up yesterday when they couldn’t get their ceiling tiles to appear in a reflected ceiling plan view no matter how much they adjusted their view range and other visibility settings.

The problem was simple, it was the underlay orientation; but the option to change it was greyed out and the modeller was stumped, they had an RCP view but they were stuck with it displaying as a floor plan.

The problem was the discipline setting of the view – it was set to coordinaton rather than electrical. When you have your view set to coordination or architectural in the discipline option, the underlay setting is not able to be changed.

2015-01-14_17-04-40 2015-01-15_8-46-45

As long as the ceiling tiles have been modelled in the linked architectural file as soon as you change the underlay orientation to reflected ceiling plan, your ceiling tiles will appear.

Of course this doesn’t just apply to electrical, it applies to mechanical, fire and hydraulics services as well.

2015-01-15_8-52-21

Clean 2D Pipe Fitting Symbols

One of the gripes that a lot of hydraulic engineers and modellers have with Revit is the representation of pipework bends in 2D views. It’s something that I fixed up pretty early on, but I’ve come to realise when I come across drawings that look similar to the screenshot below that some may still not know how to fix this.

2014-11-25_13-54-59

I’d a quick fix per fitting, the problem will be if you have a lot of fittings to modify, it becomes a long repetitive process.

The first thing that you want to do is to edit the family, and switch to the Ref. Level view, you will be greeted by something that looks like this:

2014-11-25_13-55-32

 

In this instance I am modifying the out of the box Revit family Elbow – Soldered – CU.rfa. If you’re  little overwhelmed by what you see on the screen, don’t worry; we’re not touching any of the dimensions or 3D elements. If you need to, you can adjust the scale of the view to change the size of the dimensions, or you can completely turn off the dimensions in Visibility/Graphics (VV / VG shorcuts).

2014-11-25_14-02-40What we are wanting to change is the 2D representation of the fitting, which are model likes of the pipe fitting subcategory. In the screenshot below, I’ve highlighted them in red with the dimensions turn off for clarity.

 

2014-11-25_14-06-09

When modifying the pipe fittings, I like to keep the original linework in the family as a just in case. I usually change the linework to the <Invisible Lines> subcategory or turn the visibility off, you can however remove them if you wish.

 

To achieve the clean 2D representation that you’re used to, we’re going to create some new linework along with a reference line to control the angle.

First up, find the intersection of the Front/Back and Left/Right reference planes, from the intersection, draw a model line using the Pipe Fitting subcategory on a 45 degree angle (1) and then create an angular dimension between the Front/Back reference plane and your newly created reference line (2)

2014-11-25_14-33-25

 

When you start drawing your line from the intersection of the two reference planes, Revit will automatically lock your line to the intersection point, this is also the point the the fitting is scaled around.

Next, apply the angle parameter to your dimension, the line will snap around to the same direction as the fitting.

2014-11-25_14-14-48

You now need to align and lock the endpoint of your line to the reference plane for the outside edge of the fitting.

2014-11-25_14-40-33

Now draw the other half of your fitting symbol. You don’t need to apply an angle in this case, just draw the line from the intersection of the Front/Back and Left/Right reference planes to the outer edge of the fitting. Don’t forget to align and lock the line to the outer reference plane.

Once you’re done, flex your fitting within the family editor, changing the diameter and angle. Make sure everything works as expected.

2014-11-25_14-46-26

 

Now load your fitting back into your model or template and check out the difference

2014-11-25_14-52-19

For the tee fitting, there is no need to recreate the symbology from scratch, all you really need to do is to remove the ticks by either making them invisible, or changing them to the <Invisible Lines> subcategory.

2014-11-25_14-55-52

Simple Sheet Planner Family

I was talking with a colleague today about the woes of a modeler trying to plan out drawing sheets with ever changing engineering input during the project setup. He wanted to know if there was a solution to pre-plan sheet layouts before spending the time setting up the required views.

My solution is pretty simple, I knocked up an annotation symbol that you can adjust based on your sheet size, the parameters HEIGHT and WIDTH are type parameters that you can configure based on different variation of your titleblocks. I also placed a shaded section to show the limit of where you could place grids within the view without touching the border of the titleblock, again there is a parameter GRID_ALLOWANCE that you can adjust depending on the size of your grid bubbles.

The reason that I have use an annotation symbol is that the symbol will scale relative to the view that you are in, so no need for a cumbersome series of families for various scales.

You can see the family in action below

[su_youtube url=”https://www.youtube.com/watch?v=AA1YjYn-TRc”]

How to Create a Parametric Coil Family

A little while ago I was asked how to create a parametric cooling coil to go inside an air handling unit (AHU) family. First up, I would advise that if you’re considering doing this too keep in mind what level of detail (LOD) that you or your company models to and also to take into consideration what value families detailed to this extent will or will not add to your project.

With that though, I decided that because the solution wasn’t immediately obvious and because there may be legitimate reason for someone to create something similar I put together a quick demonstration on how to make it work.

I must admit, when I first started creating this family I was a little worried as the theme song for Mission Impossible started playing on the radio! In the end though it is quite simple to achieve although not immediately obvious to the end user what the solution may be.

There are two methods that you can use to make this work utilising a nested family or directly arraying the sweep. Usually if you find that parametric objects are not behaving the way that they should in Revit most of the time the issues can be resolved by nesting the geometry in another family; you would control the dimensions of the sweep in the nested family and the array in the host.

If you are going to directly array the sweep within the family the trick is to align and lock the quadrant of the circle at the end of the swept path. Most people will try and align and lock the outer edge of the 3D element itself, but this will not work because our sweep profile is a circle it has no edges that can be aligned.

The second option is easier to control the array. As mentioned above you simply need a reference plane within the nested family that you can use as a base to align your array. Usually if there are any odd lingering issues nesting the complex objects is an easy way to eliminate them.

You will see the in demonstrations and the files themselves that for the first option I have made all the parameters in the family type parameters as these would be in the AHU family itself and would be controlled by a family type. In the second option, I have made the parameters in the host family type and the parameters in the nested family instance so they can be driven from the host.

You can download the example files here:

 

And watch the video demonstrations for each option as well

[su_youtube url=”https://www.youtube.com/watch?v=OGnfa1HBtlY”]

[su_youtube url=”https://www.youtube.com/watch?v=t3zmZWnX41Q”]

Automating the conversion of imperial files to metric

After reading about using Revit journal files to upgrade and purge Revit families, I decided to have a go at applying the same thought to automate one of my most hated processes – converting imperial files to metric.

The original article posted at Revit Randoms gave a quick template to get me started. The original ZIP file is located here.

A post on Reddit actually prompted me  to complete this post, because the question on Reddit was related to templates, I’ll use template files in this example but you could apply to family or project files.

Firstly, I started with the batch file changing it to create a list file of RTE files which now looks like so

[su_quote]CHCP 1252
cd . del /s /F *.0*.rte
dir /B /S *.rte > RTE_to_metric_list.txt
[/su_quote]

The next step was to modify the provided script text file to suit my needs. Firstly I needed to change the line of code that loads the list of files to be modified, so I change the line

[su_quote]InputFile = “famlist_rfa.txt”[/su_quote]

to

[su_quote]InputFile = “templates_rte.txt”[/su_quote]

Because in the instance I didn’t want to purge the files that I was converting to metric, the next step was to remove all the lines related to loading and purging family files.

So then I needed the code to convert my files to metric. To do this it is as simple as running through the process manually in Revit and then taking the code straight from the Revit Journal file itself. I went through the long and arduous process of converting a file from imperial to metric units, all going well it would be the very last time. At the end, I also saved the file to get the code to save the file as the relevant file type, in this case a template file.

The next step was to hunt down the Revit journal files. The location of the journal files are outlined in the Autodesk Knowledge Centre. In my case I was using Revit 2014 on Windows 7 so my journal files were located in %LOCALAPPDATA%\Autodesk\Revit\Autodesk Revit 2014\Journals

Using Notepad++ I scanned through the journal file looking for lines related to the changing of units. Finally I spotted repetitive lines that looked something like this

[su_quote]
Jrn.Command “Internal” , “Load a family into the project , ID_FAMILY_LOAD”
Jrn.Data “File Name” _
, “IDOK”, “.\PURGE.rfa”
Jrn.Data “FileExternalTypes” _
, “”
Jrn.Data “Transaction Successful” _
, “Load Family”
Jrn.RibbonEvent “TabActivated:Manage”
Jrn.Command “Internal” , “Purge (delete) unused families and types , ID_PURGE_UNUSED”
Jrn.PushButton “Modal , Purge unused , Dialog_Revit_PurgeUnusedTree” _
, “Check All, Control_Revit_CheckAll”
Jrn.PushButton “Modal , Purge unused , Dialog_Revit_PurgeUnusedTree” _
, “OK, IDOK”
Jrn.Data “Transaction Successful” _
, “Purge unused”[/su_quote]

I selected everything in the journal related to changing of units and pasted them into the script.

Next, I needed to change the line that saves the files as a family to saving as a template, again digging through the journal file I found where I had saved my file and changed the line

[su_quote]Jrn.Command “Internal” , ” , ID_REVIT_SAVE_AS_FAMILY”[/su_quote]

to

[su_quote]Jrn.Command “Internal” , ” , ID_REVIT_SAVE_AS_TEMPLATE”[/su_quote]

Once done, I simply needed to drag and drop my script onto the Revit icon and watch the magic happen.

[su_youtube url=”https://www.youtube.com/watch?v=keQr2bqtyu4″]

 

Finally! The How-To on Automatic, Dynamic Revit Legends

It’s Friday night in Singapore and I’m sitting in my room soaking up the air conditioning before I head out on the town. I don’t get to travel for work often but this is one of those rare moments I get to enjoy new sights, a different culture and also meet some really passionate BIM/Revit people from elsewhere in the world.

Something that has been in the back of my mind this week is this video that I recorded back in May/June. After 2 years, I decided I should sit down and explain how I generated my dynamic Revit legend. The idea was that it would be a 2 part video. The first part, which I’m posting tonight, is for versions of Revit up to and including 2014. The second part of the video was for 2015 and beyond. Unfortunately between surgery and travel, I haven’t had time to record the second video.

I would say that everyone that sees this video will know what to do to achieve automated dynamic schedule glory in Revit 2015, but I will still record the video anyway for those that want a step by step guide. There is also nothing to say however that this method can not be used for 2015, because this will still work in 2015 and beyond without issue.

I do apologise for such a delay in getting this out there, it’s something that I put off repeatedly. It’s one of those whacky work arounds that some people will love, but others will hate; one of the reasons I had put off recording the how-to was because I couldn’t implement this at work, but hopefully it will still help someone somewhere.

[su_youtube url=”https://www.youtube.com/watch?v=86irAZxWrSA”]

A downside worth mentioning is that if you use this method and you send your RVT file to someone outside of your company, they will not see the legend symbols. DWF, PDF and other formats however should be fine.

The how-to for 2015 will come after I return home from Singapore. Until then, happy whacky legends.

Pile Cap Family With Nested Angled Piles – Revit Family

Pile caps. Not exactly something I normally deal with. I was asked the other day how would you create a family that has the piles included with the pile cap family but allows for the piles themselves to be adjusted based on the engineers specifications. If you’ve seen some of my families, you’d know I know how to make sub components orbit at my will.

001 pile cap

To achieve the orbiting pile, I first place a reference arc as per my trench grate family, and then I hosted another reference arc to that. The second arc is what the pile cap is hosted to. This allows full orbiting of the pile, but of course if the data entered into the family is correct, everything should right way round and right side up, looking something like this:

002 pile cap 003 pile cap

 

 

In elevataion, the angle of the pile is adjusted as a ratio, in this instance I have used a ratio of 3:1. I then use trigonometry to convert the ratio to an angle that can be used by Revit to adjust the angle of the pile. In plan, the rotation is express as an angle.

All the piles adjust equally, however it wouldn’t be too hard to create 3 new sets of parameters if you needed to adjust each pile individually, just a bit more cumbersome to actually use.

Now, keeping in mind that I’m an MEP guy, you can download this concrete box with legs here.