MorphoPlan

Professional Project: Stantec

Role: Lead Computational Designer

Converting Space Planning masses to refit walls without redrawing each element

Challenge

In our office and systems for working, traditionally designers use masses to sketch program with simple to test adjacencies, sizes and planning strategies. The slowdown happens when that sketch has to become real walls in Revit, the elaborate tracing, checking thicknesses, aligning, and re‑doing work when plans shift. This tedious exercise during the schematic stage of the project takes a lot of time and manual labour work. My aim was to create a program which would automate these recurring development steps so designers can spend their valuable time on better things.

MorphoPlan closes that gap by converting space‑planning geometry directly into walls at the right level, height, and thickness, so users can keep iterating without paying a “documentation tax.” It’s built for designers/model managers stepping from planning to modeling phase on a live project.

Process

Design rule: Masses which are next to each other (spaces that will share a wall) should have a GAP/SPACE in between them. This GAP represents the thickness of wall which will occur between the boxes. Keep in mind the wall thickness(type) required and adjust the GAP size accordingly. (for e.g. the final wall thickness should be 8″ so the GAP/spacing between the masses should be adjusted to 8″ prior to running the script).

Matrix

  1. Batch automation: Build walls for an entire massing plan in one click.
  2. Flexible selection: Convert all masses, or just the ones you pick.
  3. Parametric control: Choose level, type, and height before application.
  4. Smart thickness logic: Uses gaps between boxes to infer wall thickness (i.e 8″ Gap between all masses), keeping everything consistent.

Features

  1. Flexible scope: Generate walls for all space planning masses in the view or just the ones selected.
  2. Smart placement: Walls will host on centerline of gaps(offset)
  3. Consistent thickness logic: Gap are read as wall type thickness. So, it sits exactly in the middle and doesn’t take away from room area
  4. Parametric control: Users can control selection, height, type, level of wall generation.

I built the scripts in small steps, testing and adjusting along the way. Each round of testing surfaced new constraints (like preventing overlap into the mass geometry) or complexities like overlapping walls being duplicated. The complexities had to be resolved in sprints. The system follows incremental logic through step-by-step iterations, so the final workflow feels simple for the user even though it evolved through multiple cycles of refinement.

Design:

  • Select space planning masses.
  • Import + cleanup + explode geometry.
  • Get all base surfaces of geometry.
  • Get perimeter curves of base surfaces.
  • Offset these to create location lines in cc.
  • Generate vectors for each line.
  • Vector.cross product to check for parallelism +.
  • Check if geometry (mutual) intersects one another.
  • Check if both conditions meet. true
  • Then capture each in separate group lists using sets.
  • Get all points. Startpt + endpt and set union.
  • Sort points from min to max magnitude.
  • Pick first and last point to draw new lines.
  • Assign wall by inputs height, level, wall type.
  • Hit run! and your walls will be populated.

Code:

  • Left: Base surfaces of all masses
  • Right:

Flow Diagram

Dynamo Script

Solution

One click generates walls around the selected masses, positioned on the gap centerlines, with the specified type/level/height. It respects the planning intent and removes the tedious redraw step that normally follows diagramming

Impact

  1. Happens very frequently on projects.
  2. Quickly populates a standard wall family around masses
  3. Speed: hours of tracing become minutes of setup.
  4. Fewer errors: consistent thickness and alignment from the start (because the gap drives the wall). 
  5. Scale: works across large plans and multi‑level studies; the same pattern can extend to floors, ceilings, or even services once the planning grid stabilizes.
  6. Keeps momentum: I can iterate on layout without paying a manual rework cost each round.

Key Tech Stack

How I use it: User manual