Contents
Custom MEP Revit add-ins are plugins written against the Revit API for work the mechanical, electrical and plumbing disciplines repeat on every project, done the way the office does it: sizing pipes against the office's own table, naming and numbering systems, finding open connectors before an issue, tagging in bulk, and writing calculation results back into the model. Off-the-shelf tools cover the general case. A custom add-in covers the office's standard.
MEP is also where a small mistake travels furthest. A wall in the wrong place is one wrong wall. A pipe with the wrong diameter changes the flow in everything downstream of it.
The founder's high school final was a debugging exam, graded out of 20 with 24 available. The class high was 18. His score was 23.5, and the half point went on a spelling mistake. Not a logic error. A typo. The most dangerous bugs aren't the complicated ones. In an MEP add-in the sizing logic gets the attention, and the failures come from units, connector directions, and a fitting with three connectors instead of two.

What makes an MEP add-in different
Most Revit add-ins work element by element: read a wall, write a parameter, move on. MEP elements are connected. Every pipe, duct, cable tray, fitting and piece of equipment carries connectors, and the add-in's real job is to walk from one to the next.
In the Revit API a pipe or duct is an MEPCurve, and its ConnectorManager returns its connectors. Each Connector carries the data the add-in works with: Flow, Direction, Domain, its shape and size (Radius, or Width and Height), IsConnected, and AllRefs, the connectors it's joined to. Follow AllRefs out from a pump and you reach every pipe and fitting it serves.
That traversal is the part a general-purpose tool rarely gets right for a specific office. Where does a system start? Where does a branch end? Which fittings get sized with the pipe? Those answers are the office's standard, and they're what the add-in is written from.
Where MEP offices usually start
The first add-in is usually one of these:
- Sizing against the office's table. Revit's built-in Duct/Pipe Sizing works from velocity or friction. Many offices size from their own table or a local code, so the add-in reads flow from the connectors, picks the size and writes it back.
- System naming and numbering, so every system follows one pattern across the model and the schedules.
- Open connector checks before each issue: every connector where IsConnected is false and the element isn't a deliberate end of the system.
- Bulk tagging of pipes, ducts, equipment and devices by rule, with the tags placed so they don't overlap.
- Hangers and supports placed along runs at the office's spacing.
- Data out to calculation sheets and results back in, through Excel or a shared database.
Pick the one the team repeats most and argues about least. A task with an agreed rule gets automated. A task without one gets a meeting first.
Revit 2026 made cable sizing the office's rule

Revit 2026 changed electrical conductors. Their settings moved to a dialog of their own under Manage, MEP Settings, and according to Symetri's guide to the release, conductor sizes are no longer linked to ratings or ampacity data. You set the cable type and size of a circuit independently of the connected load or the protective device rating.
That's more flexible for offices working to a local cable standard. It also means the sizing logic is now the office's to supply. An office that relied on the old automatic behaviour either sizes circuits by hand or writes the rule down: the local standard's table, the installation method, the correction factors it applies. Written down, it becomes an add-in that reads each circuit and sets its cable.
The small details that break MEP add-ins
Almost none of the failures are in the sizing formula:
- Internal units. The Revit API stores length in feet, whatever the project units say. A diameter that reads 0.164 is 50 mm. Conversion always goes through UnitUtils.ConvertFromInternalUnits.
- Derived units. Flow, velocity and pressure are stored in units built partly on feet, so a flow value isn't in litres per second until it's converted.
- Connector direction. In, Out or Bidirectional. A traversal that ignores direction walks back upstream and sizes the main from a branch.
- Fittings with more than two connectors. A tee or a cross splits the traversal. Without a record of visited connectors, a looped system never finishes.
- Nominal and actual size. DN 50 and the pipe's outside diameter are different numbers, and the office's table is written in one of them.
- Workshared elements owned by someone else. The add-in can't change them and has to report them.
None of these are hard. All of them show up on the first real project. None of them show up on the sample model.
A Dynamo graph or a custom add-in
For one project, a custom Dynamo script is often enough: read flows from a schedule, match them against a table, write the sizes back. It's also the cheapest way to find out whether the office's rule is actually written down.
A custom add-in earns its cost when the traversals get large, the same rule runs on every project, several people use it in a workshared model, and it has to keep working through each Revit release. Revit API development covers how a tool like that is built.
If your MEP work is mostly tagging and scheduling on standard Revit content, an off-the-shelf add-in from the Autodesk App Store probably does it, and you don't need us, or anyone like us.
What to write down before anyone starts
A useful brief for an MEP add-in fits on two pages:
- The rule itself: the sizing table, the naming pattern or the tagging standard, with its source.
- The categories it touches: Pipes, Ducts, Cable Trays, Conduits, their fittings, and equipment.
- What it writes, to which parameter, and what it never changes.
- What it reports, element by element, when the rule can't be applied.
- One real project model to test on, with its worst system in it.
With that, a quote is about scope. The cost article covers how the price follows from it, and it's the kind of work our custom Revit plugin development covers.
Conclusion
Custom MEP Revit add-ins are worth building where the office has a rule it applies on every project and Revit doesn't apply it out of the box, which since Revit 2026 includes cable sizing. The connector traversal is the core. The risk sits in the small details: feet, flow units, direction, tees, nominal sizes. Test against those first. What's the first thing you'd want to change? Tell us about the workflow.
FAQ
What is a custom MEP Revit add-in?
A plugin written against the Revit API for repetitive mechanical, electrical and plumbing work that applies the office's own standard, such as sizing against the office's table, naming systems, or checking for open connectors.
Does Revit size pipes and ducts automatically?
Revit's Duct/Pipe Sizing tool sizes from velocity or friction. When an office sizes from its own table or a local code, that rule has to be implemented in a script or an add-in.
What changed about cable sizing in Revit 2026?
According to Symetri's guide, conductor sizes are no longer linked to ratings or ampacity data, and a circuit's cable type and size are set independently of its load. The sizing logic is now the office's to supply.
What units does the Revit API use for length?
Feet, whatever the project units are. Values have to be converted with UnitUtils. Derived units such as flow are partly based on feet as well.
Is Dynamo or an add-in better for MEP automation?
Dynamo is enough for one project or for testing a rule. A custom add-in fits better when the rule runs on every project, the traversals are large, and several people use it.
Which MEP task should you automate first?
The one the team repeats most and that has an agreed rule. Sizing against the office's table, system naming, and open connector checks are the most common starting points.
When don't you need a custom MEP add-in?
When the office's MEP work is mostly tagging and scheduling on standard Revit content and an off-the-shelf add-in already does it.