Skip to content

Manufacturing | Formwork - Automating Vertical Formwork Design with Recursive Subdivision

We engineered a sophisticated multi-stage solver utilizing a headless Rhino.Inside.Revit backend to overcome the topological complexity of vertical formwork. By implementing recursive surface subdivision and face chaining (grouping) algorithms, the tool dynamically selects and packs components from a library of over 650 types, enforcing wall-tie alignment across opposing surfaces. A single click replaces a manual design process of a few hours to days, returning a complete vertical formwork solution in 15–60 seconds.

Client
Private Client
Timeline
2020 - 2022

The Engineering Challenge

While ceiling formwork (Deck) is complex, vertical formwork (Walls) presents a harder topological challenge. The design team at a global leader in aluminum formwork manufacturing had to manually lay out panels for thousands of vertical surfaces - walls, column faces, beam sides, and the sides of drop slabs - while adhering to a critical structural constraint: Panel Alignment. A single layout took a few hours to a few days to produce by hand - and every window, door, projection, and window hood interrupted the panel runs with its own component rules.

Panels on opposite sides of a wall must align perfectly to allow wall ties (structural rods) to pass through. If an obstruction on one side forces a panel size change, the other side must mirror it, regardless of its own geometry. Standard algorithmic approaches failed here because they treated surfaces in isolation. The client needed a solver that understood the relationship between opposing faces.

The Solution Architecture

We engineered the Wall Solver, a companion to our Deck Formwork Automation tool, utilizing the same pioneering headless Rhino.Inside architecture. It transforms the client's most complex manual workflow into a single-click operation. The two tools share one codebase and design philosophy: the same shell-model extraction into a unified RhinoCommon Brep, the same internal geometry types, and the same return path into native Revit family instances - with the Revit API engaged only at the start and end of the process.

Face Data Chaining (The Alignment Engine)

To solve the alignment problem, we developed a Face Data Chain algorithm.

  • Topological Pairing: Instead of solving walls individually, the system scans the model to pair opposing faces that fall within the wall-tie threshold.
  • Unified Solving: Once paired, the solver treats the wall as a single volumetric entity. It computes a "column width domain" - the aligned widths of the panel columns on both sides of the cavity - satisfying the constraints of both faces simultaneously so wall ties always align.
  • Balance Validation: Matching both sides is not as simple as copying panel widths across the cavity - resizing can push a panel below the system's 75mm minimum width. The solver validates every solution and adjusts the balance - the non-standard panel that closes each run - until both sides align within the system's limitations.
  • Anchor Weighting: The anchor point selected in the Deck Solver acts as a weighting for the wall layout: balance panels are orientated towards it, so the non-standard panels for both wall and deck formwork consistently land in the same location.
  • The Beam-Side Exception: Beam sides take no wall ties, so the solver separates them from the chains and solves them in isolation, rotating panels to lie horizontally along the beam.

Recursive Subdivision

Rectilinear walls are simple, but real-world concrete cores have complex returns, kickers, and projections.

  • Vertical Slicing: A first pass slices each face with a bias towards vertical cuts, maximizing panel height utilization before finer subdivision begins.
  • Convex Corner Slicing: We implemented a recursive subdivision algorithm that slices non-rectangular surfaces at every convex corner.
  • Fitness Tree: The solver generates multiple potential subdivision strategies and uses a fitness function to select the solution that produces the most square (and therefore most packable) bins.

Each rectangular bin is then packed with columns of panels using linear packing, working from the system's standard 600mm panel width.

Modular Feature Solvers

Vertical geometry is full of interruptions: Windows, Doors, and Projections (extruded fenestrations).

  • Context-Aware: We built dedicated sub-solvers for each feature type. The window and door solvers identify jambs, sills, and heads - selecting different opening components depending on whether the opening has a jamb or is flanked by an adjacent wall - while the projection solver resolves every face of an extruded void, and the window hood solver handles the cantilevered shading slabs above openings.
  • Domain Ownership: These features live in the Wall Solver deliberately - even their horizontal surfaces. The wall and beam components are the variants used to solve openings, a projection's slab needs the surrounding wall context to select the correct solution, and a window hood's deck props can bear on an upstand below - context only the vertical solver holds. Splitting these features across tools would fragment the workflow and produce incorrect results.
  • Multi-Phase Execution: The solver runs in passes - first solving the primary panels, then evaluating vertical corners for adjustments, and finally aligning soffits to match the modified corners.

Enterprise Features

Beyond the solver core, the tool codifies how the client's design teams actually work.

  • Codified Rule Engine: Hundreds of the client's design rules and system specifications are defined in JSON, deserialized at runtime, and injected into the solvers via the Strategy Pattern - layering the specific rule for each condition so the output matches the manual design process the rules were codified from.
  • System Selection & Overrides: Users select which of the client's formwork systems to target and can override its presets from the UI - substituting a 500mm standard panel width for the default 600mm, for example - with the solver responding to every input.
  • Inventory & Priority: Users can import a customer's previously purchased formwork inventory, filter and rank it in a dedicated component-priority page, and have the solver draw from that stock first - only "ordering" new components once the imported inventory is exhausted.

UX & State Management

The solver is wrapped in a WPF interface styled with Material Design, mirroring the Deck Solver's production UX.

  • Embedded Viewport: An embedded Rhino viewport renders the shell model - the unified concrete geometry extracted from Revit - giving users immediate visual context for the surfaces the solver is about to work on. The solved formwork itself is placed directly in Revit.
  • Smart State Management: Every component the solver creates is a domain object holding a reference to its Revit element ID, persisted to JSON. On a re-run - in the same session or days later in a new one - the solver restores this state, deletes only its own stale components, and places the new solution. User-authored elements are never touched.
Platforms.
Revit
Rhino.Inside
Core Technology.
C#
.NET
Azure DevOps
Design System.
WPF
Material Design

The Result

The Wall Solver transformed a manual design task that ranged from a few hours to days into an operation completed in 15–60 seconds, depending on the surface area requiring formwork.

  • Component Coverage: It handles over 650 component types - wall panels, beam sides, soffits, and corner components - automatically selecting the correct component for every condition, including window and door openings.
  • Intelligent Output: The solver output is not just geometry; it is a valid engineering solution that respects wall-tie alignment, balance panel minimums, and structural prop positions.
  • Any Rectilinear Condition: Because the client's design rules are codified and layered through the Strategy Pattern, the solver handles practically any condition in the shell model within the system's geometric limits.
  • Non-Destructive Re-Runs: Solver-owned components are tracked and persisted, so re-running the tool - even in a later Revit session - cleanly replaces the previous solution without ever deleting user-authored elements.
  • Zero Setup: Unlike manual drafting, the user simply clicks "Generate Formwork". The tool handles all surface extraction, alignment, and packing automatically.

The Wall Solver is one of three tools in the formwork suite we delivered for this client: upstream of both solvers sits the Model Error Checker - the quality gate that validates the merged shell model before either solver runs.

650+
Component Types Managed
15–60s
Solve Time (vs Hours–Days Manual)
100%
Wall-Tie Alignment Enforced
100s
Design Rules Codified in JSON

Reaching the limits of the Revit API?

Book a discovery call

We'll start with a short, no-obligation discovery call.