Plumbing Fixture Flow but not for IPC

Plumbing Fixture Flow but not for IPC

HVAC-Novice
Mentor Mentor
4,913 Views
17 Replies
Message 1 of 18

Plumbing Fixture Flow but not for IPC

HVAC-Novice
Mentor
Mentor

Revit seems to convert fixture units based on IPC table E103.3.

 

For flush tank systems an example would be:

3 FU = 6.5 GPM

 

I happen to be in Wisconsin. We don't follow IPC. If you look at the  SPS 382  table 382.40 shows 3 gpm for 3 FU. it gets a bit more complicated because a public tank-WC in Wisconsin has 3 3 FU while in IPC it has 5 FU. 5 FU under IPC would be 9.4 gpm compared to 3 gpm. this is weird and a huge discrepancy

 

But how would I implement this in Revit so it calculates the "Wisconsin" gpm? I suspect this IPC rules is pretty much hard-coded. But wonder how people outside IPC handle this?  

Revit Version: R2026.4.2
Hardware: i9 14900K, 64GB, Nvidia RTX 2000 Ada 16GB
Add-ins: ElumTools; Ripple-HVAC; ElectroBIM; Qbitec
0 Likes
Accepted solutions (1)
4,914 Views
17 Replies
Replies (17)
Message 2 of 18

iainsavage
Mentor
Mentor

There are a couple of other posts on this topic but basically Revit ONLY uses the IPC method.

The only alternative that I know of is to design your own addin to calculate flows and diversity factors your way. Not being a programmer I have never been able to solve this issue for use with other methods.

Message 3 of 18

HVAC-Novice
Mentor
Mentor

Thanks, that is what I suspected. And I'm not able to program that myself either 🙂

Not even dynamo is a good solution since that wouldn't give me areal time update. (that and plus my lack of Dynamo skills)

 

The discrepancy is really big for small FU numbers but greatly diminishes for higher FU numbers. At 100 FU it is 42 gpm (IPC) vs. 43.5 gpm (WI). IPC also uses some different FU numbers for some fixtures. So that is just a more conservative value if I use IPC. I can live with that since the gpm numbers will be a bit higher than WI code says (more conservative). it probably won't lead to an actual change in pipe size. 

 

I'm always puzzled how in a country with the very same fixtures, and same physics, we have at least 3 major plumbing codes (+ local variations) that all treat this a bit different. 

 

Revit Version: R2026.4.2
Hardware: i9 14900K, 64GB, Nvidia RTX 2000 Ada 16GB
Add-ins: ElumTools; Ripple-HVAC; ElectroBIM; Qbitec
0 Likes
Message 4 of 18

iainsavage
Mentor
Mentor

I assume you're aware that there are two calculation methods in IPC (and in Revit), one for flush tanks at WCs and one for direct flush valves (flushometer) on WCs. The flush valve method gives higher flowrates with a minimum flowrate in the system of 15 GPM - this seems to catch a lot of people out and you end up with 1" or 1.25" terminal branch pipes (because they are sized to suit a Sloan Royal or similar flush valve).

Regarding the "International" Plumbing Code I feel your pain since it is nothing like the methods used in UK and I had never heard of this code until I tried to pipe size in Revit - as far as I can tell it isn't used anywhere other than USA and from what you are saying it isn't even used there so why ADSK chose this as the only calculation method available is beyond me.

I think you'll just have to play about with loading unit values until you get diversified flow rate values which seem sensible to you.

Message 5 of 18

HVAC-Novice
Mentor
Mentor
Accepted solution

Yes, the flus tank vs. flush valve was the first thing I checked. 

 

The "International" codes only contain IP units, so that tells me everything how "International" they are 🙂 

in addition every State or town can decide if they adopt them and what version and what changes they want to add. WI adopted most of the 2015 international codes, but also has a list of changes. WI didn't adopt the IPC at all. The City I'm in adopted the IFC (International fire Code) that references SOME NFPA 101 sections, but not ALL. the rest of the State doesn't use IFC. Thee also is UBC (Universal Building Code) adopted by some states... it is a mess. But IPC is adopted in large areas. So I see why Revit chose that. 

 

I found out about the discrepancy. We use a "Hunter's Curve" developed by a Dr. Hunter based on empirical observations. Apparently for higher FU numbers. it appears IPC uses the deleted dotted line, and WI code the more accurate solid line and for up to 60FU there is an overestimation for IPC. See attached PDF.

 

But since the "error" is more conservative and not a problem the larger the system gets, I'm fine just using the IPC values. Better to do it slightly too large in Revit, then doing it wrong manually by hand 🙂 

 

HVACNovice_0-1708012811074.png

 

Revit Version: R2026.4.2
Hardware: i9 14900K, 64GB, Nvidia RTX 2000 Ada 16GB
Add-ins: ElumTools; Ripple-HVAC; ElectroBIM; Qbitec
0 Likes
Message 6 of 18

RLY_15
Advisor
Advisor

Taking the conservative sizing approach is probably the best way to get through Revit. As a double-check, you can curve-fit the deviated portion of hunter's curve as a calculated parameter and set up a pipe schedule to have piece of mind.

 

Since it's plumbing and plumbing needs to be aware of dead legs and hot water drain times, just make sure that 'slightly too large' isn't increasing pipe sizes to the point where it takes a minute for a lavatory to receive hot water. 😋

Message 7 of 18

iainsavage
Mentor
Mentor

"... it is a mess" - and you forgot the Uniform Plumbing Code an "American National Standard"!!

Your research should however be of interest to others and hopefully help them in the future.

👍

 

Message 8 of 18

RLY_15
Advisor
Advisor

Not to be confused with the National Standard Plumbing Code (hello New Jersey!).....also by IAPMO?

Message 9 of 18

HVAC-Novice
Mentor
Mentor

The good thing about "standards" is that there are so many.....

 

In addition, the Hunter's curve was developed many many decades ago. Now most, if not all, fixtures use much less water.

 

in Wisconsin there actually is an alternative methods for pipe sizing that is based on more recent observed flowrates on actual apartment buildings. That will result in much fewer gpm than the tables that are based on Hunter's curve. But that is only allowed in residential installations (apartment buildings etc.).

Revit Version: R2026.4.2
Hardware: i9 14900K, 64GB, Nvidia RTX 2000 Ada 16GB
Add-ins: ElumTools; Ripple-HVAC; ElectroBIM; Qbitec
0 Likes
Message 10 of 18

Joseph_Peel
Enthusiast
Enthusiast

As mentioned above, you can create/modify the User MEP Calculation. Theres an example that you can use as a template. https://thebuildingcoder.typepad.com/blog/2013/07/user-mep-calculation-sample.html

 

The flow calculation part is literally the IPC table and nothing smarter than that (Also no interpolation) so its not so hard to just find that part and chenge it, even if you know nothing about C#. You can do this in Visual Studio. Then you compile it like you would with an add in and load it into your project. The new calculation will appear in the MEP options. I have succesfully managed to do this for european water calculations when I had no programming experience.

Message 11 of 18

iainsavage
Mentor
Mentor

Wish I'd known about this years ago.

I knew it could be done but just didn't know how - I had tried once to reverse engineer an addin that I found which calculated to DIN standards but I couldn't figure it out.

You'd think if its so easy to do then Autodesk could just make more options available in the native software or they could have a more visible tutorial on how to do it rather than it being buried in @jeremytammik 's website.

0 Likes
Message 12 of 18

jeremy_tammik
Alumni
Alumni

You may also want to check out this more recent update with some alternative suggestions:

  

https://thebuildingcoder.typepad.com/blog/2023/07/docs-lookup-mep-calculation-and-aps-devcon.html#6

  

Jeremy Tammik Developer Advocacy and Support + The Building Coder + Autodesk Developer Network + ADN Open
Message 13 of 18

HVAC-Novice
Mentor
Mentor

I'm re-surrecting this since it bugs me to have the flowrate at low FU-values (50 FU and under) way too high (pipe sizing etc.)

I was hoping there is a simple txt file Revit uses and I could edit that to use the Wisconsin code data. But I can't find one. 

 

I looked through the above linked articles but can't figure out. In addition it looks like that is a tool to be installed and I can't install software. Anything I can do is limited to editing something that I can do in windows (e.g. edit txt file).

 

I prefer to size pipe on velocity and like to keep pipes small (especially hot pipes) for faster response of hot water. I understand the being conservative in using IPC, but for hot water, this is not good. I can add safety factor to the overall pressure drop if needed. and since the inaccuracy is up to 50FU, this will impact the short runs from the hot water circulation to the faucet/shower. We talk about twice the assumed flowrate, so that easily increases pipes by 1-2 sizes. 

 

This is what our code uses:

HVACNovice_0-1747261988123.png

 

if Revit can't be forced to use our code, are there other creative and (semi) automatic workarounds? I guess I could use a higher standard velocity at low FU units. But if I use the sizing tool, it ends up selecting (with tab function) the entire system and not just some sections unless I manually select pipe sections.

 

Revit Version: R2026.4.2
Hardware: i9 14900K, 64GB, Nvidia RTX 2000 Ada 16GB
Add-ins: ElumTools; Ripple-HVAC; ElectroBIM; Qbitec
0 Likes
Message 14 of 18

iainsavage
Mentor
Mentor

Following your previous request and the requests of others I managed, building on the work of others such as @jeremy_tammik and using code from his website, to muddle through and develop an addin which would allow the use of alternative FU to flow conversion, however I couldn't quite get it to work for the following reasons.

If I used a formula for the conversion then the addin worked. The problem that I faced was getting a suitable formula. I plotted tabulated data on a spreadsheet chart and tried to calculate a line/curve of best fit but I couldn't get a formula which would give a reliable FU to flow conversion across the whole range of values.

The other method that I tried was to use dictionary pairs based on the tabulated data but this only worked if the exact FU values were present in the pipes. Intermediate values would result in zero flow because the dictionary pair didn't exist. I tried then using a rounding formula to round FUs to the next highest valid tabulated value - that worked for pipes connected to fixtures but it led to compounded errors further up the system because rounded up values would be added to other rounded up values and then the total was also potentially rounded up again etc etc, leading to silly values further up the system.

 

So in summary, I got the addin to work but struggled to get the correct method of relating FU values to flow values.

 

If you have a formula for the FU to flow conversion then I could quickly plug that in to the addin and it would work for you.

I don't though have a good solution for tabulated data.

 

I'm happy to freely share the code that I developed as @jeremy_tammik and others have done.

Message 15 of 18

iainsavage
Mentor
Mentor

My attempts to create a working addin are described in this thread.

Message 16 of 18

HVAC-Novice
Mentor
Mentor

Thanks for sharing. I don't think I can use any API or add-in methods. First, I'm not sophisticated enough :-). Second, our IT uses MS AppLocker to prevent any unapproved code to run. The only "unapproved" code I seem to be able to use are the nodes in Dynamo. Even approved software sometimes needs manual approval (Even Revit updates...). 

 

I was hoping the Revit IPC method uses a table of the IPC values and it interpolates the values. And my hope was to just edit that table to meet the Wisconsin code (modified Hunter curve). but it seems it isn't as simple as finding and editing a txt file... 

I don't even need alternative methods sine I only design in WI. 

 

I found some ideas to vote on:

https://forums.autodesk.com/t5/revit-ideas/plumbing-fixture-flow-method/idi-p/11574099

https://forums.autodesk.com/t5/revit-ideas/fixture-units-on-vent-piping-system/idi-p/7975866

https://forums.autodesk.com/t5/revit-ideas/revit-plumbing-fixture-unit-conversion-additional-tables/...

 

I also was hoping to use Revit to calculate the pressure drop for the pipes (and add the Wisconsin code required pressure drop for each fixture type in the fixture family). But with the flow being too high, this also would be too large (I like to calculate accurately first, then add safety later). On the cold side this may just yield waste in piping cost. But on hot water side, this also wastes water and energy and convenience. the thing is, my projects are smaller retrofits. So I'm below the 50FU most the time. 

 

If I can't manipulate Revit to be correct I may use this workaround:

- use standard velocity to size pipes with high FU (~4fps)

- use higher velocity for lower FU values (5-6 fps?) - this will create a high "fake" pressure compared to my local code)

- don't add safety factors for pressure and just use the "fake" pressure for safety

 

EDIT: I noticed something odd about the pressure calculation. I analyzed a small system and BEFORE I added any fixture pressure drop to the fixtures, that system had ~1.6 psi pressuredrop.

I then added a pressure drop to the connector in the Family. 8 psi pre-set per our code. I expected the system pressure drop to be 9.6 psi (1.6 psi from flow + 8 psi for each fixture). But it ended up to be 15.4 psi. Editing the fixture families was the only change and each family (lavatory and WC in this case) got the same 8psi. am I mis-understanding this or is Revit doing it wrong? 

HVACNovice_0-1747330414926.png

 

Revit Version: R2026.4.2
Hardware: i9 14900K, 64GB, Nvidia RTX 2000 Ada 16GB
Add-ins: ElumTools; Ripple-HVAC; ElectroBIM; Qbitec
0 Likes
Message 17 of 18

HVAC-Novice
Mentor
Mentor

I learned a few things and think I got Revit as far as I was able to. There are a lot of ideas how to make Revit "work differently", But all seem like the cure is worse than the disease. One idea is to adjust Fixture units. Obviously this won't work when you get to above 50FU. I also learned, most my fixtures require 20psi. So the pipe pressure drop is less significant. I also learned, for Tees, Revit can't calculate the pressure drop. This only works for elbows. and it also only works with a the Loss method set to "K coefficient". I assume Revit has a hard time dealing with Tees and knowing if we need the branch or through pressure drop. 

HVACNovice_0-1747852134866.pngHVACNovice_1-1747852141711.png

 

I ended up laying out my pipe for a 50+ FU project. I let Revit size the pipes based on 7fps. This was fine in most cases, but not for the large pipe (close or above 50FU). For those I used 5fps. I also manually calculated the pressuredrop using the Wisconsin gpm-conversion. This gave me less pressure drop (since we assume less flow at low FU). That was expected. As expected, Revit pressure calc will be very conservatives. 

 

 I think the best method is to use Revit to size the pipes with varying velocities (higher at low FU). And in some selected situations I double-check manually for Wisconsin code. That should give me good pipe sizes while being conservative. This I think is the best short of actually "making" Revit use the Wisconsin code. It is a good idea to look into the code as you design anyway.

 

Edit: Also learned selective tab-selection. You click one pipe segment, then hover over a different segment and "tab". that way you select all pipes in between and can do a different sizing (different velocity) for that part. 

 

Edit 2: I also noticed, when connecting a recirculation pipe (separate system) to the hot water pipe with a normal Tee, the system doesn't break as I feared. the hot water supply pipe calculation still works and the circulation return pipe is a different system. I totally expected I have to build a special fitting or equipment to separate them. The regular hydraulic separation tools are grayed out, though. I just wanted to point out, that Revit in this case "just works", even if I didn't expect it. This software is full of surprises. 

Revit Version: R2026.4.2
Hardware: i9 14900K, 64GB, Nvidia RTX 2000 Ada 16GB
Add-ins: ElumTools; Ripple-HVAC; ElectroBIM; Qbitec
0 Likes
Message 18 of 18

HVAC-Novice
Mentor
Mentor

Some new things I will implement for the next project. Our AHJ said they review based on a pressure worksheet.  The way that works, it comes up with a vale "A" that is a "maximum psi / 100ft" value for the critical path. Our code has tables for different pipe material that shows the psi/100 ft based on fixture units (red-circled for flush tank systems). In my case "A" is about 4. So any pipe segment has to be sized to be at or under "A" (4 psi/100ft) 

 

HVACNovice_0-1753877687957.png

AHJ also wants me to annotate ALL segments with size and FU numbers. I assume they use that to spot-check if all pipes are sized to be under "A". 

I think this is missing the part where a tiny segment technically could have higher pressure drop, and it also misses the fact that in non-critical paths I technically could have a bit smaller pipes. But I just do what they say and what code prescribes. 

 

FWIW, with my sizing (I don't recall if I used 7fpm??) I only had to edit a few tiny segments to meet exactly what the above method requires. But this will depend a LOT on the rest of the system and available pressure (my project is just a remodel in part of the building, with all plumbing outside the project scope being existing and out of my control. 

 

This seems to be an old method from before computers. but with Revit being imperfect outside IPC, I don't see a good way to do it in a different way than AHJ seems to request. I also don't see a good way to automate sizing in Revit. I guess using the sizing tool and 7 fpm (knowing IPC assumes higher flows than WI code), is a good start, and then I still have to manually verify and edit each segment. My project are relatively small, so this isn't too bad. I just wonder how one does it in really large projects? I assume there is standalone Plumbing software that is more flexible than Revit and also accounts for elevations, water meters etc. 

 

And for some reason AHJ wants to see all FU and sizes on isometric views, and not on plan views or sections. I ended up creating two 3D views for each type (Water and sanitary) since it was hard to see all pipes well in a single 3D view). It is one of the things, where i just have to do as I'm told. 

Revit Version: R2026.4.2
Hardware: i9 14900K, 64GB, Nvidia RTX 2000 Ada 16GB
Add-ins: ElumTools; Ripple-HVAC; ElectroBIM; Qbitec
0 Likes