Manufacturing | Suspended Ceilings - Automating Suspended Ceiling Systems using Rhino.Inside

We engineered the industry's first enterprise implementation of Rhino.Inside.AutoCAD to automate complex ceiling system design for a global manufacturer. By embedding Rhino's geometry kernel in-process and codifying the client's system design rules, we transformed a manual 2D drafting workflow into an interactive 3D ceiling configurator that outputs production-ready AutoCAD drawings.

Client
Private Client
Timeline
2023 - 2025

The Engineering Challenge

The client, a global leader in suspended ceilings, relied on a manual 2D AutoCAD workflow that was struggling to keep pace with demand. Technicians had to manually interpret architectural plans, align grids with panel sizes and springs, manage openings, and coordinate perimeter trims - often rebuilding drawings from scratch when requirements changed. A single reflected ceiling plan could take hours — or days for geometrically complex spaces — to draft, coordinate, and revise by hand.

The goal was to automate this process. However, standard AutoCAD APIs lacked the geometric computational power to handle complex surface intersections and real-time 3D visualization. The solution had to think in 3D but deliver standard 2D AutoCAD drawings.

The Solution Architecture

We engineered a ceiling design configurator tool: an enterprise-grade WPF application that pioneers the use of Rhino.Inside.AutoCAD. By embedding a headless Rhino 7 instance directly into the AutoCAD process, we combined the documentation standard of AutoCAD with the advanced geometry engine of Rhino.

Running Rhino in-process eliminates subprocess marshalling — critical for the high-frequency geometric queries the solver issues during Boolean, intersection, and projection operations. A three-layer geometry abstraction (internal domain types → Rhino → AutoCAD) keeps solver logic independent of either CAD API, while a custom assembly-resolution layer reconciles version conflicts between AutoCAD's bundled libraries and modern .NET dependencies — one of the hard-won details of shipping Rhino.Inside in a production AutoCAD environment.

From 2D Blocks to Domain Objects

The tool elevates raw AutoCAD geometry into intelligent domain objects. Users define ceiling extents via standard 2D blocks, which the system automatically converts into its own ceiling instances.

  • Smart Configuration: Users assign specifications — material, perforation, finish, acoustic fleece — select panel shapes (rectangular, triangular, plank), and define grid layouts as standard modules or fully custom grids sketched as lines directly in AutoCAD, which the solver validates against system design rules before generating the panel and suspension layout.
  • Interactive Design: We implemented a 'minimize-to-capture' UX pattern. Users can click a button to minimize the UI, snap to a grid origin point in AutoCAD, and watch the app instantly regenerate the ceiling grid to that intersection.

Live 3D Visualization

The tool features a Material Design WPF interface with an embedded Rhino viewport that updates in real time.

  • Event-Driven Feedback: Every user action - changing the pitch, rotating the grid, or swapping a trim profile - triggers an immediate regeneration of the 3D ceiling schematic in the viewport.
  • Visual Correlation: Break points added by mouse-click in AutoCAD partition each perimeter or opening into discrete segments. Each segment receives an indexed ID rendered in the 3D viewport that maps to its corresponding row in the UI, so users always know exactly which edge they are assigning a trim to.

Algorithmic Solver Pipeline

The core engine uses a Strategy Pattern to dynamically select the correct generation logic based on the client's product system.

  • Design Rule Enforcement: The solver automatically validates inputs against manufacturing constraints - preventing invalid trim assignments on curved edges or enforcing mandatory tee offsets around diffusers.
  • State Persistence: We utilized the Memento Pattern to capture the entire configuration state into JSON. This allows users to close the tool and resume their session exactly where they left off, without data loss.

The solve itself runs as a multi-phase pipeline: edge-loop resolution (perimeter, voids, openings), datum grid generation, panel grid construction, suspension grid assembly — with main tees positioned by linear packing and cross and slotted tees sequenced to the grid — and finally trim, clip, and accessory placement. Each phase feeds a layered cache architecture, so a single input change invalidates and recomputes only what it affects.

Selective Regeneration

To prevent drawing corruption, we engineered an object-tagging system. Every entity created by the solver is tagged with a persistent ID. When a user regenerates a ceiling, the solver queries these tags to erase only its own entities before writing the replacement geometry, leaving user-created entities untouched.

The codebase follows Clean Architecture with strictly unidirectional dependencies: 1,100+ interface contracts isolate every implementation layer, dependency injection via Autofac wires the system explicitly, and a dedicated compatibility layer absorbs AutoCAD's year-on-year API changes — keeping a 37,500-line system maintainable, testable, and extensible against the inherent volatility of CAD platform APIs.

Platforms.
AutoCAD
Rhino.Inside
Core Technology.
C#
.NET
Autofac
Design System.
WPF
Material Design

The Result

The tool transformed a laborious, complex design and drafting task into a rapid configuration workflow, outputting fully designed and detailed suspended ceiling drawings via an intuitive Graphical User Interface (GUI).

  • Instant 3D: Users can visualize the ceiling grid, pitch, rotation, and trim assignments in real-time via the integrated Rhino viewport.
  • Automated Accuracy: The solver enforces design rules for panel sizing, tee arrangement, and spring alignment automatically.
  • Inventory Control: The system sequentially numbers panels and tees and generates a precise Bill of Materials (BoM), synchronized with the client's internal inventory codes.
  • Team-Wide Continuity: Design state persists at project level via JSON snapshot capture, so any team member opening the DWG resumes with the same inputs, trims, and templates as the last designer — a single source of truth for ceiling design decisions.
  • Crash Resilience: Automatic state backups minimize data loss if AutoCAD crashes, and users can save and reload complete tool configurations on demand.

This solver anchored a broader production-automation suite we delivered across the client's AutoCAD environment — including automated section detailing, panel manufacturing drawings, and sheet-metal folding — built on the same domain model, caches, and Rhino.Inside foundation.

37,500+
Source Lines of Code (Enterprise-Grade)
<3.6%
Technical Debt Ratio (SQALE)
<60s
Solver Runtime (vs. Hours Manually)
1,100+
Interface Definitions

Ready to modernize your CAD workflows?

Book a discovery call

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