Beta tester guide

ForgeFab addin help for beta users.

This page is the public help reference for the ForgeFab beta addin. It explains what to install, how to start testing, which panels are ready, and what information to send when something breaks.

Install and update

  1. Close all Revit sessions before installing or updating ForgeFab.
  2. Download and run ForgeFab Beta 1.2.191.
  3. Start Revit 2024, 2025, or 2026 after the installer finishes.
  4. Open a detached test model or a non-production project copy for first validation.
Current beta installer (October 16, 2026): Download ForgeFab-Beta-Setup-1.2.191.exe (57.8 MB; 57,786,216 bytes). SHA-256: 52bfa08d0290aee1b1e2fc24a12f1dcdbf97ed59be4c4a4b583e0cc046e7a825
Beta builds expire after 30 days. Each beta installer is stamped with its build date and refuses to open the Hub once 30 days have passed. The About page inside the Hub shows the exact expiry date. If your build is expired, install the newest published build from this page. Reinstalling the same build does not extend its expiry.

New in Beta 1.2.135: straight-pipe annotations

The same update is included for Revit 2024, 2025 and 2026. Mechanical Pipe and Plumbing tag straight fabrication pipes only. Welds, couplings, elbows, tees, reducers and other fittings are excluded, including when pipework is selected under All fab.

  1. Select the fabrication pipes and open Annotations / Fab-Tag Settings.
  2. Choose Mech Pipe or Plumbing, then select the ordinary pipe tag family and type.
  3. Leave Include riser tags off to skip risers. To include them, turn it on and choose a loaded, compatible Riser tag family. An explicitly selected riser type stays fixed, including its Up/Down meaning.
  4. Run Preview candidates, review the count, then apply. Existing tags, visibility and layout can reduce the final placement count.

A missing or incompatible riser family skips the risers with an explanation. Existing tags from earlier runs are not removed by the update.

Other changes in 1.2.135

  • Sheet Manager: select drawings, apply reusable sheet-number and title standards, and review old/new names before applying. For example, replace M with MP to change M1.01 to MP1.01 while preserving the numeric suffix.
  • Sleeve colors: service names containing prohibited Revit characters no longer cause invalid filter names. Sleeve Marks are preserved.
  • Clash review: supported solutions stay in ghost preview until the green check accepts them. Connected runs remain review-only.
  • Shared trapezes: preview supports for selected horizontal, parallel pipes at matching support elevations. Acceptance verifies supported geometry and pipe connections and rolls back failed assemblies. Inserted-NWC verification requires Revit 2026.3 or newer and a verified instance transform; unreadable or unsupported geometry blocks acceptance.

Validate placement using your project's actual fabrication parts, support families and tag families. See the release changelog for the complete update.

What's new since 1.2.4

  • Floor family geometry now actually responds per-instance (1.2.34). 1.2.33 made Sleeve Diameter an instance parameter but its value was formula-bound to ForgeFab_SleeveDiameter (still type), so the formula always overrode our per-instance writes. ForgeFab_SleeveDiameter is now also instance, geometry driver responds per-instance, and SetParam writes flow through to the sketch dimension.
  • Bundled _Floor family ships with instance-level dim params (1.2.33). ForgeFab_Sleeve_RD_Floor.rfa now has Sleeve Diameter / Length as instance parameters instead of type. Previously every placed _Floor sleeve shared the same 6" default diameter because the geometry driver was bound at the type level. New bundled .rfa lets each placement size to its own pipe. After install, delete the old loaded ForgeFab_Sleeve_RD_Floor from Project Browser → Families → Generic Models so the auto-loader picks up the new one.
  • Layout points land at the actual target Z, not target + level elevation (1.2.32). NewFamilyInstance(XYZ, FamilySymbol, Level, …) treats the XYZ.Z component as an OFFSET from the level's ProjectElevation, not an absolute world Z. We were passing the absolute world Z, so points landed at level + Z (e.g., 36' 3" above the sleeve on Level 3). Now we subtract the level's elevation before passing.
  • Slab layout-points override is unconditional now (1.2.31). 1.2.30's "sleeve.Z + 3"" fix only triggered when the placed family name contained "_Floor". In projects where the _Floor variant isn't loaded, the placer falls back to the wall family and 1.2.30 silently used the old nearest-level math. Slab handler now passes useSleeveZForPoints=true unconditionally so every slab placement gets the right Z regardless of which family ended up being used.
  • Layout points for slab sleeves land 3" above the sleeve, not the level (1.2.30). PlaceLayoutPointsForSleeves now uses sleeve.LocationPoint.Z + 3" as the Z target for floor-variant sleeves. Wall sleeves keep the level-based math (they sit mid-wall, so the layout person walks on the level floor, not the sleeve elevation). Layout XY now reads from the sleeve's LocationPoint instead of bbox center, which fixes asymmetric / offset families.
  • Slab sleeves no longer underground (1.2.29). PlaceFloorSleeve now runs three position-correction strategies in sequence: MoveElement, direct LocationPoint.Point set, then a level-swap path that re-pins the family to the level closest to the slab top via Schedule Level / Reference Level + Elevation from Level. Bundled _Floor family is workplane-bound and silently rejects MoveElement on the Z-axis, which was landing instances at the family's authored Z (the project base point) instead of at the slab top.
  • Slab penetrations back on the _Floor family (1.2.28). 1.2.27's wall-family unification hit Revit's non-suppressible "Can't rotate element into this position" modal Error (wall family's workplane constraint blocks the 90 - tilt). Reverted to _Floor-family-first preference (bore already vertical, no rotation needed). Kept the unhosted placement path and the non-destructive position correction, so instances place at the right XYZ and survive even when Revit nudges them slightly.
  • Slab penetrations now mirror the wall placement flow (1.2.27): single family (ForgeFab_Sleeve_RD / _SQ), placed unhosted at the actual pipe-through-slab crossing XYZ, then tilted 90 - around X by RotateSleeveToVertical. The previous face-based + dedicated-_Floor-family path was anchoring every placement at the family's authored insertion point (site-plan origin), landing sleeves outside the building. The new flow uses the same proven path the wall placer has been using for months.
  • Slab penetrations stop silently deleting themselves (1.2.26). The position-correction routine added in 1.2.24 was deleting every legitimate slab placement because the recheck distance > 0.5 ft branch fired on every floor family (which legitimately anchors its Z to the authored reference plane, not to the requested center.Z). Position correction now runs best-effort: nudge if possible, keep what Revit placed if not. No more "0 placed" on selection / level mode.
  • Slab penetrations now use face-based placement (1.2.25). PlaceFloorSleeve hosts the sleeve directly on the floor's top face via the Reference overload of NewFamilyInstance. This fixes the default slab flow on bundled ForgeFab_Sleeve_RD_Floor and _SQ_Floor (which were authored origin-at-slab-top and were silently landing at the family's default location through the unhosted overload). Linked-doc floors work too via Reference.CreateLinkReference. Falls back to the legacy unhosted/level-host path for strictly-unhosted families.
  • Hilti CFS-CID placement no longer stacks (1.2.24). The Hilti family's work-plane constraint was silently ignoring the XYZ passed to NewFamilyInstance, dropping every instance at the level origin. Place Sleeves now reads back the actual location after creation and moves the instance to the intended center; if the family rejects the move, it falls back to the standard ForgeFab round sleeve for that penetration so the user still gets a sleeve.
  • Hilti Fire Sleeve option for round pipes (1.2.23): new opt-in toggle on the Sleeves panel ("Use Hilti Fire Sleeve for round pipes"). When on, round PIPE penetrations are placed with the bundled Hilti CFS-CID cast-in fire sleeve family instead of the default round ForgeFab sleeve. Ducts and rect sleeves are unaffected. Family auto-loads from the install bundle on first use.
  • Place Sleeves doesn't freeze Revit on commit anymore (1.2.22). The hidden geometry-cache view introduced in 1.2.19 was shipping with every category visible at Fine LOD, so the post-commit view regen had to re-rasterize the whole model. Cache view now ships with every category hidden + Coarse LOD, so Revit has nothing to draw and the commit is near-instant. Existing cache views from 1.2.19/1.2.20 get migrated to the lighter settings on next placement. A "Finalizing - " progress message also fires right before commit so big runs don't look frozen during the last few seconds.
  • Level-scoped placement actually scopes the WALLS too (1.2.21). "Place on Level" for wall sleeves, slab penetrations, and rack openings now pre-culls walls / floors by the level's Z-band before the expensive solid-extract pass. Picking "Level 2" on a 10-floor model now feels proportional to "one floor of work" instead of "whole project". Whole-project runs (no level selected) are unchanged.
  • Wall openings actually point through the wall (1.2.18 to 1.2.20). Place Duct/Pipe Sleeves was silently leaving openings world-aligned on any wall that wasn't parallel to world X (Revit 2025's wall-host overload accepted unhosted Generic Models without orienting them). The rotation now runs on every placement and auto-detects the bundled family's bore axis from its bbox, so floor-authored .rfas don't end up looking like slab penetrations when they're really wall openings.
  • Layout points on each sleeve (Trimble-ready): new "Drop layout points on each sleeve" toggle on the Sleeves panel. Round sleeves get a center point; rect wall openings get the left/right footprint edges; rect slab openings get all 4 corners. Every point sits 3" above the nearest project Level regardless of where the sleeve itself sits, and carries the same ForgeFab|LpPoint metadata the existing Trimble Field Link / DWG / LandXML exports already understand.
  • No more 3D-view flicker during big Place Sleeves runs. Fab-part geometry extraction needs a 3D view as context, and the old code used your visible 3D view (re-rasterized once per fab part). It now uses a dedicated hidden cache view (named ForgeFab_GeometryCache, auto-created) with no view template / section box / crop region, so regeneration is near-instant.
  • Hub splash + Quick Selections: looping intro background with the "Fabricating the Future" tagline, plus a "Quick Selections" panel that remembers the last six panels you opened.
  • Floor sleeves: dedicated ForgeFab_Sleeve_RD_Floor and _SQ_Floor families auto-deploy to %APPDATA% on first launch. Slab Penetrations now lands the sleeve at slab top with the correct vertical bore. No more rotation hack.
  • Login flow actually works. Fixed four broken Firebase REST URLs that were 404'ing every sign-in attempt. Refresh tokens now encrypted at rest via Windows DPAPI.
  • Ductwork, Project Standards, Account, Assistant panels are now reachable from the Hub side rail (they had pages but no nav entries).
  • Clash Detect: Structural group now catches slabs, structural walls, roofs, beam systems, embeds, stairs, and ramps (silently missed before). Yellow warning banner surfaces unloaded links and closed worksets. Each clash row names the host element and the linked element it hits, and the zoom lands the camera directly on the collision (no manual zoom-in needed).
  • About page now shows the actual installed version, build date, channel, and a recent-versions changelog.
  • License + protection. Proprietary LICENSE and NOTICE files ship in the install dir. AI/ML training opt-out is documented in the LICENSE (Section 3) and baked into the DLL's assembly metadata. The installer wizard requires license acceptance.

Multi-System Routing: plan levels and connected turns

New in Beta 1.2.137 for Revit 2024, 2025 and 2026. These fixes apply to newly drawn routes.

  1. Open the working plan and ForgeFab Hub > Multi-System Routing. The default Reference level: Active plan uses the plan's associated level, rather than the first or lowest level. In a 3D view without an associated level, choose a level explicitly before drawing.
  2. Choose each row's fabrication service, type and size. Offset (ft) is relative to the reference level: a level at 100 ft plus a 12 ft offset targets 112 ft. Each row keeps its own offset.
  3. Under Row offsets measure to, the default Centerline gives equal centerline heights for equal offsets. Choose Bottom of insulation (BoI) to align actual insulated undersides, or bare-part undersides when uninsulated. BoI is established before connections; different sizes can have different centerline heights. Ins (in) is spacing allowance only and does not apply insulation.
  4. Choose Start parallel draw, pick the start, then click the route and its turns. Press Esc to end point picking. An attempted segment that cannot connect correctly rolls back, preserving the last successful segment.
  5. Inspect joints and heights in plan and 3D, then choose Finish to keep the pending rack or Discard to remove it. Return to the original model before finishing or discarding its preview.

Refresh level rereads the current model and view. An explicit level stays selected within the same model. Switching models resets the reference to Active plan and clears fabrication selections while preserving row offsets and alignment. The model, view and level are checked again when drawing starts.

Existing routes are not repaired automatically. Review and retrace affected routes after updating; old disconnected elbows and incorrect heights remain until you correct them.

Automated checks and builds passed. Live Revit model and interactive UI acceptance remain pending. Validate the turn toward plan South with your actual fabrication services in a test project copy.

Clash Detective: review ghost solutions

New in Beta 1.2.136: a compact floating Clash Review window keeps the clash and its solution controls beside your Revit model.

  1. Open Clash Detect in the ForgeFab Hub and run analysis.
  2. Choose Review clashes, or choose Review on a clash row. The floating window opens and previews the selected open clash as a cyan ghost in the 3D navigator.
  3. Use Previous clash / Next clash to move between clashes in the report.
  4. Use Previous solution / Next solution to compare proposed positions for the same clash. The original element stays in place during preview.
  5. Inspect the ghost in Revit. Only the green Accept solution checkmark applies the reviewed, supported move. Acceptance becomes available after the ghost renders and the required checks pass; after acceptance, review advances to the next open clash.
  6. Keep reviewing while the Hub is closed or showing another page. Choose Close review, or close the floating window, to clear its ghost.
Connected runs remain review-only. Connected pipes, ducts and other constrained elements need a separate reroute that preserves their joints. A simple offset does not build that reroute, and its Accept button stays disabled.

If the ghost is unavailable, read the reason in the floating window. Keep the 3D navigator visible and choose Preview again after changing the view or model. Validate rendering and acceptance with your project's actual parts in your Revit version.

First run

After Revit opens, ForgeFab loads a ribbon tab and the WebView2 Hub. The startup splash should say Fabricating the Future. If the Hub does not open automatically, use the ForgeFab ribbon button to open it.

Sign inUse the Momentum account you signed up with. ForgeFab opens a browser approval page when the beta login is required.
ThemeThe Hub follows Revit's light or dark mode where supported.
Project copyStart with a safe model copy until your team approves the workflow.
Beta buildSome panels may be visible but disabled. That is expected for tester builds.

Working panels in beta

These are the panels testers should evaluate first. If a panel is not listed here, treat it as internal or not ready unless your beta admin specifically asks you to test it.

PanelUse it forTester note
Project StandardsCode/profile setup, wall clearances, plan-view violation colors.Confirm project name/address/profile values and wall clearance behavior.
Project AnalysisFloor-level plan analysis, linked context, clash categories, ceiling legend.Verify linked model visibility and design-option context on real projects.
Schedule MakerCreate fabrication schedule presets and custom schedules.Check that labels, icons, and fields are readable.
Family BrowserSearch and load curated families from configured folders.Try diffuser, hanger, sleeve, and common support searches.
Hanger SettingsService/type support selection and hanger rule setup.Confirm round support types do not apply to rectangular duct unless intended.
Manual Conduit DrawConduit rack drawing, route and fill, bridge testing.Report impossible bridge cases with screenshots and selected element counts.
Multi-System RoutingParallel fabrication routing across services.Test simple runs first, then multi-turn runs with elbows/couplings.
DuctworkConnected-run highlighting and fabrication transition testing.Check flat-side transition behavior on real fabrication duct parts.
Point LayoutPreview and layout point placement for model context.Confirm level selection, descriptions, and color behavior.
Assembly ManagerClassify and review fabrication assemblies.Use level/elevation view controls to isolate scope.
Fab-Tag SettingsStraight-pipe annotations and explicit optional riser tags.Confirm welds/fittings are excluded and the selected riser family/type is used.
Sheet ManagerDrawing selection, sheet-number/title standards and rename review.Preview the old/new values and check for duplicate numbers before applying.
Clash review and shared trapezesGhost review and green-check acceptance for supported cases.Validate project families and connections. Inserted-NWC verification requires Revit 2026.3+ and verified placement.

Beacon linked issues

Keep notes and follow-up status with the parts they describe, then locate those exact parts in Revit.

  1. Install Beta 1.2.138 and open the original saved model. Export the complete package or spool to Beacon again to supply its model identity and element links.
  2. In Beacon, select one part or hold Ctrl to select several parts from the same package. Choose the linked-issue action. You can also create an issue for a whole package or spool from its Issues panel.
  3. Enter a title and notes, then save. New issues start as Open. Add follow-up notes and change the status to In progress or Resolved as work continues.
  4. In ForgeFab Hub, open Beacon Issues. Confirm the project name matches the export, then refresh.
  5. Choose Select parts or Select & zoom. ForgeFab checks the current model and every full element reference before selecting anything.
  6. Update notes and status in Beacon. Refresh the Revit list to see the latest changes.
First test: Create an issue for a known elbow and confirm Select & zoom finds it in the original model. A copied, moved or detached model may have a different identity. Missing or replaced parts are reported for review; a matching element number alone is never used as a substitute. Issue navigation does not change model geometry.

Each issue covers up to 500 parts from one package or spool. Earlier notes stay in the history. If someone saves an update while you are editing, refresh that issue and review the latest changes; your draft remains in the form.

Recommended testing workflow

  1. Open a copied Revit model and confirm the ForgeFab tab loads without startup errors.
  2. Open the Hub and verify the beta panels are visible.
  3. Run Project Standards first. Save a profile and run one selection check.
  4. Run Project Analysis on one floor. Confirm linked geometry and legends are readable.
  5. Create one schedule from Schedule Maker and confirm it appears in Project Browser.
  6. Search for and load one family in Family Browser.
  7. Test one routing or hanger workflow on a small selected area.
  8. Use Revit Undo after each batch if the result is not what you expected.
Small tests win. A 10-element test is better than a 4,000-element first run. Build confidence with small scopes, then expand.

Troubleshooting

ForgeFab does not load

  • Close Revit, reinstall the current beta package, and reopen Revit.
  • Confirm your Revit version is supported by the beta package.
  • Send a screenshot of the Revit external application error if one appears.

The Hub opens but a panel is disabled

That usually means the workflow is not enabled for beta testers yet. Internal development builds may expose more panels than the beta release.

A routing command disconnects elements

  • Stop and save a screenshot before undoing.
  • Send the selected services, sizes, number of rows, and direction sequence, for example: right, up, right.
  • Include the exact Revit warning text when possible.

A family keeps loading repeatedly

Report the panel name, family name, Revit version, and whether the family is already loaded in the project.

Report feedback

Send feedback and screenshots to info@virtubuildr.com. The best reports include:

  • Revit version and ForgeFab beta installer date.
  • Project type and whether the model has linked files or design options.
  • The exact panel and button used.
  • What you selected before clicking the button.
  • Expected result, actual result, and any warning/error text.
  • Screenshot or short screen recording when the problem is visual.

Beta boundaries

The beta release is intentionally limited. The development addin may contain additional tools, but beta testers should not depend on them until they appear on this help page.

Available in Beta 1.2.138: Fab-Tag Settings, Sheet Manager, the supported coordination workflows above, Export to Beacon and Beacon Issues for approved users. Equipment Headers, the separate Spool panel, and Parts Mapper remain restricted. Existing package/spool memberships are preserved; automatic regrouping of existing assignments requires a reviewed migration.