Manufacturing | Formwork - Automating Complex Deck Formwork with Rhino.Inside.Revit
We pioneered a hybrid geometry architecture that leverages a headless Rhino backend to solve complex formwork layouts in seconds. By integrating custom guillotine partitioning algorithms with JSON state persistence, we transformed a manual workflow into a real-time automation engine that optimizes standard formwork panel usage and enforces strict design rule constraints instantly.
- Client
- MFE Formwork
- Timeline
- 2019 - 2022
- Service
- Custom Applications→
The Engineering Challenge
MFE Formwork, a global leader in aluminium formwork, faced a massive bottleneck. Their design team spent hours manually placing 650+ types of standardized panels to cover complex ceiling surfaces in Revit. The task was geometrically intense: finding the optimal layout for arbitrary rectilinear shapes while respecting over 100 engineering rules and structural constraints.
The problem was that the Revit API was fundamentally unsuited for this challenge. It lacked the advanced surface splitting, Boolean operations, and geometric tolerance required to solve complex intersections reliably. MFE needed a solution that could "think" like a geometric solver but live inside Revit.
The Solution Architecture
We engineered the Deck Solver, the industry's first enterprise plugin to utilize Rhino.Inside.Revit as a headless geometry engine. To the user, it is a seamless Revit plugin; under the hood, it is a high-performance Rhino application.
Hybrid Geometry Pipeline
We developed a unique architecture that extracts geometry from Revit but processes it entirely in RhinoCommon.
- The Bridge: Upon startup, the tool extracts Revit elements (Walls, Slabs, Beams) and converts them into our internal geometry types.
- Headless Solving: Once converted, the application disconnects from the Revit API. It uses Rhino's advanced Brep (Boundary Representation) kernel to merge, split, and heal the geometry - tasks that would be impossible or incredibly slow in native Revit.
- Metadata Preservation: To maintain the link between the solver and the original BIM data, we invented an IPointReference system. This injects metadata markers into the Rhino geometry, allowing the solver to query properties (like Wall Type or Element ID) without ever calling the Revit API.
Algorithmic Solving (Guillotine Cuts)
To tackle the layout optimization, we implemented a Guillotine Cut Algorithm.
- Wayfinding: The solver treats the ceiling as a navigation grid (20mm × 20mm), analyzing edge and corner conditions to "map" the space.
- Bin Partitioning: It strategically slices the irregular ceiling profile into rectangular "bins" that can be efficiently packed with standard panels.
- Structural Logic: The algorithm automatically inserts beam soffits and structural prop heads beneath each bin, ensuring the layout isn't just geometrically efficient, but structurally sound.
Enterprise Features
- Inventory Management: The tool accepts Excel-based inventory lists, prioritizing the client's existing stock before "ordering" new components.
- Strategy Pattern: The rule engine uses the Strategy Pattern to swap logic at runtime—handling over 1,00 distinct rules for corner conditions, slab thickness, and beam intersections dynamically.
- Interactive UX: An embedded Rhino Viewport allows users to visualize the solved formwork in 3D before committing it to Revit, bridging the gap between algorithmic logic and user verification.
UX & State Persistence
To ensure the tool was production-ready, we wrapped the complex backend in a modern WPF interface styled with Material Design.
- Visual Feedback Loop: An embedded Rhino Viewport allows users to visualize the algorithmic solution in 3D before committing to Revit. This renders a live view of the architect’s shell model overlaid with deck-specific metadata, providing immediate visual correlation between the selected room in the UI and its physical spatial context.
- Smart State Management: We implemented a JSON-based caching system that tracks every element created by the solver. When a user re-runs a solution, the tool deserializes this state to "re-attach" to existing families, deleting only the stale elements before placing the new design. This ensures a clean file state and prevents duplicate geometry, even after the session is closed.
The Result
The Deck Solver transformed a multi-hour engineering task into a 15-second operation.
- Geometric Freedom: By bypassing Revit's API limitations, the tool can solve any rectilinear shape, no matter how complex the voids or junctions.
- 100% Accuracy: The output matches the manual engineering standards 1:1, including precise placement of 650+ component types.
- Productivity: Users can explore multiple design options (changing anchor points or beam directions) instantly, optimizing layouts for cost and efficiency in real-time.
- 30%
- Reduction in Codebase Size (vs Native API)
- 15s
- Solver Execution Time (vs Hours Manual)
- 100+
- Formwork Design Rules Codified
- 100%
- Revit Metadata Preservation