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.


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.



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



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.



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.


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.


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



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.



Creating a Pressure Loss Report

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


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.




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.


6 thoughts on “Getting Started With Hydraulic Pipe Sizing in Revit

  1. avatar Sead Redzepagic says:

    Thanks Ryan. Really insightful yet practical example of how we can use Revit for our pipe sizing of cold and hot water systems. An idea on how you could further develop this example is covering how we could incorporate Revit’s flow conversion method options (predominantly flush tanks/flush valves)

    And please correct me if I am wrong, but apparently Revit is not able to size low fixture unit plumbing fixtures such as basins/water dispensers correctly, due to the fact that the hunter curves it references are not well defined for fixture units below 5 for a predominantly flush valve system? Has this problem been fixed in any of the newer release or am i just smoking crack?

    I am also finding that Revit can size the piping correctly for water closets but oversizes the piping for fixtures like Lavatories.

  2. avatar Ryan Lenihan says:

    I used the option match connector size, using this setting means that it doesn’t matter if Revit under sizes the pipe connection to the fixture, the family connector will determine the size of the pipe. In the instance of Australian standards this is 15mm dia.

  3. avatar m.hough says:

    Hi Ryan,

    Do you know of a way to accurately size the system based on Australian fixture units? The flow rate method explained above doesn’t take into account diversity across the entire system and the fixture units in Revit have a higher flow rate than Barrie’s book and AS/NZS 3500.1.

  4. avatar Ryan Lenihan says:

    Hey Max,

    Sorry it’s taken a while to get back to you, I’ve been a bit busy of late. I’m actually speaking about this at RTC tomorrow morning. In the next week or two, I’ll post up all my updated information and hopefully a few videos on how to use Revit for AS3500 compliant sizing.

  5. avatar Pedro says:

    Hi Ryan. Great tutorial. Thanks.
    I’ve been struggling with hot water units…
    I from Portugal and we are used to analyse the critical path of both hot and cold systems as one. We need to know the necessary pressure at the entry point and when there’s hot water we can expect the critical path to be at the farest hot water fixture. So I had to came up with a method to make sums of the pressure losses in both systems, not relying on the critical path calculated by Revit. So far it’s been working and I don’t see any way for autodesk to implement this in a near future.
    My problem is with the HWU. I do as you do. Create an instance parameter to “transfer” the flow from the hot water inlet to the cold water, in my case, using fixture units.
    I was just wondering if there is any other method using the connectors within the family to to this automatically? So far I have had no success in doing this…
    Also, is there any way for Revit to calculate the pressure drop due to gravity? Meaning if I have the entry point at 0.00mts and the farest bathroom at +50mts of height, I have to choose one pipe fitting and fill in the pressure drop of 50mts by hand.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: