Revit's Transfer Project Standards moves whole categories, blind. Graft is the granular, safe version: one list shows every standard a source model has, verdict by verdict, against what you already have — you pick standard by standard, and nothing you didn't ask for, or can't safely replace, ever moves.
Revit moves a whole category of standards or none of it, with no view of what already exists, what has drifted, or what's risky to replace. So teams either flood the model or avoid the tool entirely.
Graft has two halves. A BIM Manager inputs the pick — a source model and the exact standards to bring. The active model gets the output — only those standards, in one reversible transaction. Here is the whole loop.
Tap Input or Output to isolate a half — the other collapses.
Any project open in the session — a link loaded in your model, or a .rvt picked straight from disk — becomes the source. Graft reads its standards, compares them to yours, and hands you one pick list where every name carries its verdict.
Pick a source from the drop-down: another project open in the session (Open · name), a Revit link loaded in your model (Link · name) — or Select model… to open a .rvt straight from disk. Graft loads every transferable standard and lines it up against your current model in one list — a colour before each name says it at a glance: green new, amber differs, grey identical, blue in use — and beside it, how much of each model leans on it: “34 views” over there, “here: 12 views” at home. Opened or closed a model mid-session? Reload re-scans the sources — and keeps the one you picked selected. Save the pick as a profile and re-apply it in any model — one office standard, rolled across every project.
Revit's own Transfer Project Standards cannot carry a loadable family at all. Graft gives them a band of their own, one section per family category — discovered from the source model rather than hardcoded, and titled with Revit's own category names, so nothing lands in an "Other" bucket. A row is the family; open it and its types sit underneath. Tick the family and every type comes; tick one type and only that one moves. In-place families are left out, because Revit refuses to load them into another model anyway. And every family row carries its own limit on its face: geometry, formulas and nested families can't be read without opening the family, so "two same-named types that differ ONLY inside read as identical here."
On anything that differs, a compare chip opens What differs — field by field, the source value against yours. So you decide from data, not memory. The match is by name, within each category, across every readable parameter — per-model noise (Workset, Edited by, IfcGUID) excluded so it never cries wolf — and it goes deeper than parameters: a wall type's layer stack, a view template's graphic overrides, a filter's rules and a schedule's whole definition are all fingerprinted, so a change hiding in any of them still flips the verdict. The one thing Revit gives no way to read — a schedule's formula column — is flagged on the row rather than guessed at. And when a diff needs words, Explain with AI turns it into one plain sentence.
Both used to be a single checkbox, and one tick rewrote every line weight, colour and pattern in the project, or replaced its whole unit set. They are bands now: a row per subcategory across the three tabs of Revit's Object Styles dialog, a row per unit across the seven Manage ▸ Project Units disciplines — 155 rows in a real model. Neither is matched by the label Revit prints: a category is its BuiltInCategory number, a unit is its schema id, both the same in every language, so a Spanish source reads correctly into an English project. And a row that cannot move says why on the row, including the case nobody thinks to check: "Both models leave this on the project default, but they use different unit systems, so the default resolves differently in each."
Graft doesn't stop at Revit's standards. The rule books and presets the suite's own apps keep in each model ride the same gesture: Canon rule books, Clash rule sets, Palette filter sets, Plot naming rules and presets, keynote memories, selection sets, naming profiles and more. Each app reads and writes its own payload — Graft compares fingerprints and carries exactly what you tick — so a project's whole working standard, Revit's and BIMIO's, moves in one pick.
and only the standards you ticked are copied into the active model, in one transaction named “BIMIO Graft — transfer standards.” BIMIO's own data and object styles land in their own named, equally reversible steps.
The transfer runs as named, reversible steps. Conflicts are yours to resolve — item by item — in-use types are locked out, and the receipt says exactly what happened.
If anything you ticked already exists with differences, Graft asks once — and item by item. Each conflict gets its own call: Overwrite mine takes the source version, Keep mine leaves yours exactly as it is, Bring as lands the source version under another name and keeps yours too. Identical twins never even ask — they're kept either way. No differing conflicts, no dialog — the graft just runs.
12 item(s) selected — 3 already exist here with differences. Decide each one:
Types in use are never offered here.
A type that differs from your model but is in use — instances placed — gets a blue dot and a disabled checkbox, so you can't even try to overwrite it: deleting it would take those instances down with it. Hover it and Graft tells you exactly why, and what to use instead. Everything you can pick lands with its dependencies already in order, a named undo step away.
When it's done, Graft shows exactly what happened: new copied, overwritten, protected (left untouched to save their instances), and skipped. The coloured dots re-read automatically, so a freshly grafted group settles to grey — identical. Export report… writes the receipt to a single self-contained HTML file — and before you commit anything, Preview… dry-runs the whole graft as that same report, while Deviation… measures how far the project has drifted from the reference without ticking a thing. The panel also writes the graft into the model's own record, so “is this project on the office standard?” stops living in somebody's memory.
The selected standards were transferred into the current model.
After a transfer, Graft re-checks every row the graft touched instead of re-reading the whole source model — which is the wait this design exists to remove. So it says out loud what that leaves open: "Copying can also bring in materials, patterns and nested families nobody ticked, so a row still marked “not here” may already be in the project." It counts the rows it couldn't re-check, and the ticks it cleared because those items turned out to be in use here. The banner has no close button, on purpose: dismissing it would take away the warning and leave the badges it warns about. Only a real reload clears it.
Overwriting normally means deleting your copy and copying the source one in — and everything hanging off the old element goes with it. So Graft avoids the delete, element by element. A filter whose rules only test built-in parameters is rewritten in place: the element never dies, so every view it drives keeps its own overrides untouched, and there is no note to write. A schedule whose definition can be reconciled is rebuilt in place, so its sheet placements survive. Where the delete is unavoidable — a rule leaning on a shared or project parameter — Graft captures each view's overrides, visibility and enabled state first and re-attaches them after. A rule pinning a specific element by id is protected rather than guessed at. And a filter Revit fails to re-create rolls the whole transfer back.
This is an actual HTML report Graft exports — self-contained, works offline, shareable as one file. Scroll it right here, or open it full-screen.
Graft ships in the BIMIO suite. Setup panel, one button, nothing to configure.