rev0 / PortfolioYordan Vakarelov
PracticeBuilt ToolsLearningDesign Studies
All pages

Practice

About & CVStrategy & LeadershipPractice HeatmapTools & AgentsVisual IntelligenceTraining & AdoptionDecisions & Development

Built Tools

Door BuilderDesktop Tools

Learning

Workflow to TutorialLearning the Revit API

Design Studies

Basalt HouseThe Prompted InteriorDrawing with CodeStyle Studies

Built Tools / Door Builder

Door Builder

Swap a nested component inside a Revit family without opening the Family Editor three levels deep. Try it below, in a working replica of the tool.

no nest-diving
v1.7Experimental, in testing with colleagues
3,398Lines of IronPython in the tool
2022+Revit versions supported
0Changes to the source family

At a glance

One swap in thirty seconds

Pick the handle in the component tree, try a replacement that loses a parameter link, switch to one that carries both, then build. The new family is written, loaded and placed; the source is never touched.

Or drive the full replica yourself ↓

Try it

Door Builder, running in your browser

Click Door Builder on the KSR ribbon tab, browse to the library, pick a door from the project, then swap its handle or panel. Check the parameters, preview the result and press BUILD: the door in the elevation updates.

A replica with sample data, rebuilt from the tool’s own window layouts and logic. It does not connect to Revit. Family names follow the KSR library; parameters, previews and the project are illustrative. Best on a desktop.

How the real tool works

Pick, swap, re-link, build

01

Pick the family

From the open project or a folder. The tool opens every nested family in turn and lists the tree, including Family Type parameters that drive nested types.

02

Choose a replacement

Only similar components are offered: handles for handles, panels for panels, filtered by the Revit category read from each .rfa file.

03

Check compatibility

Before anything is built, each replacement’s instance parameters are compared with the links on the current component, by name and storage type.

04

Build a new family

The swap is applied to a copy, every parameter link is restored, unused materials are purged and a new .rfa is saved, then optionally loaded and placed.

Design rules

What the tool refuses to do

  • Never modifies the source family. It writes a new one, and nothing is saved or loaded unless every step reports success.
  • Never overwrites the library. A changed container is named <base> + <changed parts>; if that component already exists it is reused, otherwise a new one is written to the Components folder.
  • Never counts a name match as a match. A parameter with the right name but the wrong storage type is reported as lost.
  • Never drags the Material Browser along. Unused materials are purged so a door doesn’t carry the whole library into every project.
  • Handles Revit’s type-parameter limit itself. Revit won’t associate a nested type parameter to the family above, so the tool promotes it to instance on the new copy.
The real tool | Door Builder in Revit, in-development version

Current position

The family suites are in use and the builder is being tested with a small group of colleagues. Testing focuses on component replacement, parameter behaviour and common configurations; wardrobes are next, with a similar but different set of nested elements.

Keep exploringTools & Agents ↗Learning the Revit API ↗
Yordan Vakarelov · Built Tools · 08 / 15
← PreviousDecisions & DevelopmentPortfolio ↑Front pageNext →Desktop Tools
0