TL;DR
Revit's three rounding functions — round() to nearest, roundup() always up, rounddown() always down — work on plain numbers, not lengths. To round a dimension, strip the unit by dividing, round, then multiply the unit back: round(Length / 25mm) * 25mm rounds to the nearest 25mm. Choose roundup() for material quantities (you can't buy 3.2 sheets) and rounddown() for how many units fit in a space.
Key Takeaways
- ✓round(x) goes to the nearest integer, roundup(x) always up, rounddown(x) always down.
- ✓All three take a unitless number — feed them a raw length and you get "inconsistent units."
- ✓The pattern for lengths: round(Length / increment) * increment.
- ✓roundup() for quantities you purchase; rounddown() for how many pieces fit.
- ✓Round only at the end of a calculation chain — rounding intermediates compounds the error.
- ✓Match formula increments to real construction modules: stud spacing, brick courses, panel widths.
Division creates dimensions that don't exist on a tape measure. 2437mm / 3 is 812.333…mm — perfectly valid math, completely useless on site. The rounding functions are how a formula's output becomes something a contractor can actually build.
The Three Functions
| Function | Behavior | round of 3.2 | round of 3.8 |
|---|---|---|---|
| round(x) | Nearest integer | 3 | 4 |
| roundup(x) | Always up | 4 | 4 |
| rounddown(x) | Always down | 3 | 3 |
The Unit-Stripping Trick
All three functions accept a plain number — pass a length directly and Revit reports inconsistent units. The universal pattern divides the unit out, rounds the bare number, and multiplies the unit back in:
Raw_Length / 25mm cancels the units into a pure ratio, the rounding happens on that number, and * 25mm turns it back into a buildable length. Change the increment to match whatever module your project uses.
Choosing the Right Function: Real Cases
roundup() — Material Quantities
You cannot order 3.2 sheets of plywood. Quantity formulas round up, always, or the last piece of wall goes unclad:
rounddown() — How Many Fit
The opposite problem: shelves pins, balusters, lockers — how many complete units fit in the available space. Rounding up here means the last one doesn't fit:
round() — Display Dimensions
When a calculated dimension feeds a schedule or a label and just needs to look sane, round to the project's precision:
Brick Coursing — The Classic
Openings in masonry want to land on course heights (a 75mm module for standard UK brick + joint). Force any requested height onto the coursing grid:
Round Late, Not Early
Rounding inside a chain of calculations compounds error. Three intermediate roundings of up to 12.5mm each can drift the final result by over 35mm. Keep every intermediate value at full precision — covered in the arithmetic chapter — and round exactly once, at the end, where the value meets the real world.
When Rounding Meets Conditions
Rounded values often feed decisions — “if more than 4 fixings are needed, switch to the heavy bracket.” That hand-off from arithmetic to logic is where IF statements take over.
Chapter 4 of 10
Dimensions that match construction reality
All 10 formula chapters, worked examples, HD Video Vault, and the Formula Cheat Sheet. 40% off at $18.
