This article will help you understand Revit math to the extent that you may need to be able to compute the flow rates through a coil to meet a given load.
NOTE: This information applies to Revit 2012. For information about Revit 2013, see this topic.
The liquid flow required through a coil is dependent on the amount of heat to be added or removed, also known as the load on the coil.
The amount of heat transferred to or from a mass can be determined from the following formula.
Qs = m x c x DT
where
| Qs = energy required | BTU / hr | J / s (or W) |
| m = mass flow rate | lb / hr | kg / hr |
| c = specific heat | BTU / lb °F | J / kg °C |
| DT = temperature change | °F | °C |
When computing flow, the heat required is determined from a heating / cooling load analysis. The specific heat of the fluid is typically an assumed constant, and a temperature change of the fluid through the coil is usually determined based on project requirements; thus, one can determine the required flow. Typically, airflows are specified by the designer in round numbers. So, once the flow for the load is known, the flow is adjusted. For example, if the flow based on the exact load works out to 542, the designer may specify the flow as 550. Assuming the same DT, this will result in slightly different Qs, which needs to be found to determine the water flow.
Usually, flow of air is expressed volume rate per time, instead of mass per time, so another factor is necessary to take into account density.
Qs = q x ρ x c x DT
where
| q = volumetric flow | ft3 / min | L / sec (or m3 / sec) |
| ρ = density | lbm / ft3 | kg / m3 |
Inspect all the units for the right side of the equation, you will see that everything cancels, except the volume and time.. Revit is able to handle the conversion of units (in this case minutes to hours), so we don’t need to take that into account in the equation.

Boxed text like that below indicate parameters to be created in the family definition. To be able to schedule or tag any of these values, define them as Shared Parameters.
| Parameter Name (Discipline/Type of Parameter/Group parameter under/Type or Instance) Value or Formula=Value or Formula |
Revit knows how to convert units in many cases, including flow rates, thus a Revit formula does not need to take into account the conversion of ft3/hr to ft3/min (CFM), ft3/hr to gallons per minute (GPM), m3/s to L/s, etc.. Generally, when defining formulae in Revit, you need to keep in mind that your parameter types are appropriate for the data/formula you are defining, but the units can generally be converted by Revit as needed.
There are a few challenges, however. Revit doesn’t have a concept of Specific Heat, nor does it have units for mass. (Revit assumes lb means pounds force.)
To address specific heat, a formula will need to take care of the units. This can be done by using a parameter with the Discipline as Common and the Type of Parameter as number, and then multiplying by a unit of the appropriate type, i.e., the specific heat value of air can be represented by:
| Value | 0.24 BTU/lb °F | 1000 J/kg °C |
| Representation | (0.24) * (1 Btu) / ((1 lb) * (1 °F)) | (1000) * (1 J) / ((1 kg) * (1 °C)) |
However, as indicated above, Revit only knows about the base unit of lb being for force, and it doesn't konw about the unit kg by itself. Revit does know about density and volume, so we can use this to our advantage. Note that in the representation below, the ft3 terms cancel, leaving mass:
| (0.24) * (1 Btu) / (((1 lb/ft3) * (1 ft3)) * (1 °F)) | (1000) * (1 J) / (((1 kg/m3) / (1 m3)) * (1 °C)) |
To create the necessary Revit family parameters, assign each component to a different parameter, essentially creating necessary constants. Since these are constant, these can be defined as type parameters. Additionally, to avoid a user inadvertently changing a constant a different value, the constants can be entered as formulae instead of as values.
The following parameters are necessary for the air flow portion of the family calculation:
| unitVOLUME (Common/Volume/Mechanical/Type) Formula= | 1 ft3 | 1 m3 |
| unitHEAT (HVAC/Energy/Mechanical/Type) Formula= | 1 Btu | 1 J |
| unitDENSITY (HVAC/Density/Mechanical/Type) Formula= | 1 lbm/ft3 | 1 kg/m3 |
| Air Specific Heat (Common/Number/Mechanical - Airflow/Type) Formula= | 0.24 | 1000 |
unitTEMPERATURE = 1 °F (not actually needed, explained below)
c = Air Specific Heat x unitHEAT / (unitDENSITY x unitVOLUME x unitTEMPERATURE)
Qs = q x ρ x (Air Specific Heat x unitHEAT / (unitDENSITY x unitVOLUME x unitTEMPERATURE) x DT
Since density is assumed constant, this can also be defined as a type parameter:
| Air Density (HVAC/Density/Mechanical - Airflow/Type) Formula= | 0.0751 lb/ft3 | 1.2026 kg/m3 |
Since the flow required at each unit is specified by the user, this should be defined as an instance parameter:
| Heating Air Flow (HVAC/Air Flow/Mechanical – Airflow/Instance) Value = | 550 CFM | 100 L/s |
The default value is arbitrary, and as with all instance parameters, should be set to a value as required for the instance within the project.
Since the temperature change is usually derived based on entering and leaving temperatures, these will also be defined as parameters:
| Heating Leaving Air Temp (HVAC/Temperature/Mechanical – Airflow/Instance) Value= | 80 °F | 25 °C |
| Heating Entering Air Temp (HVAC/Temperature/Mechanical – Airflow/Instance) Value= | 55 °F | 10 °C |
The temperature parameters may be instance or type, depending on the flexibility you need in your project.
Revit does something ‘interesting’ when doing math on temperatures.
Heating Air Delta T = Heating Leaving Air Temp - Heating Entering AirTemp = -434.67°F ; -258.15°C
In this case, it is off by 459.67 °F or -273.15 °C, which happens to be related to absolute zero. To account for this, add 0 in the formula:
| Heating Air Delta T (HVAC/Temperature/Mechanical – Airflow/Instance) Formula= Heating Leaving Air Temp - Heating Entering Air Temp + 0 |
Adding 0 to the temperature to get it to work out is easy enough… however, in the formula to determine the volumetric flow, there is multiplication and division of temperatures, which introduces some other complications. To simplify this, cancel the temperature units in the temperature change result to avoid having temperature units in the equation.
Heating Air Delta T / 0°F
Remember, this is not division by 0, but actually division by 459.67 of 273.15, thus, there is no division by zero error. However, the result now must be multiplied by 459.67 or 273.15. Using a constant parameter makes this a bit easier to maintain:
| temperatureZERO (Common/Number/Mechanical/Type) Formula= | 459.67 | 273.15 |
Then, as before, we need to adjust:
| Heating Air Delta T as Number (Common/Number/Other/Instance) Formula= temperatureZERO * Heating Air Delta T / 0 – temperatureZERO |
In the Calculated Heating Load formula, we will substitute ‘Heating Air Delta T as Number’ for DT, and get rid of the unitTEMPERATURE factor:
| Calculated Heating Load (HVAC/Heating Load/Mechanical – Airflow/Instance) Formula= Heating Air Flow * Air Density * Air Specific Heat * unitHEAT / (unitDENSITY * unitVOLUME) * Heating Air Delta T as Number |
Now that the Calculated Heating Load based on the specified airflow is known, the water flow can be determined.
To compute the water flow rate, create a few additional parameters:
| Heating Leaving Water Temp (HVAC/Temperature/Mechanical/Instance) Value= | 150°F | 65 °C |
| Heating Entering Water Temp (HVAC/Temperature/Mechanical/Instance) Value= | 180°F | 80 °C |
| Heating Water Delta T (HVAC/Temperature/Mechanical/Instance) Formula= | Heating Entering Water Temp - Heating Leaving Water Temp + 0 | |
| Heating Water Delta T as Number (Common/Number/Other/Instance) Formula= | temperatureZERO* Heating Water Delta T / 0 – temperatureZERO | |
| Water Density (HVAC/Density/Mechanical/Type) Formula= | 62.4 lbm/ft3 | 1000 kg/m3 |
| Water Specific Heat (Common/Number/Mechanical/Type) Formula= | 1 | 1 |
| Heating Water Flow (Piping/Flow/Mechanical/Instance) Formula= | Calculated Heating Load / (Water Density * Water Specific Heat * unitHEAT / (unitDENSITY * unitVOLUME) * Heating Water Delta T as Number) | |
Again, since Revit knows how to convert units, using the discipline piping, and type flow will result in units of gallons per minute (GPM) by default, even though the units in the formula work out to ft3/hr . Depending on your input values for Heating Load and Heating Water temperatures, your Heating Water
To test this in a project environment, you should include some simply geometry, like a square extrusion.
Place an instance in a project, and try some values. Flow may register 0 due to rounding. To show more precision, in Project Units, Discipline = Piping, click the button next to Flow, and set rounding to 2 decimal places.
You should see that the results are consistent with the common simplifications:
| Calculated Heating Load (Qs) = | 1.08 x CFM x DTair BTU/hr | 1.2026 x L/s DTair W |
| Heating Water Flow = | Qs / (500 x DTwater) GPM | Qs / DTwater L/s |
