Interactive Zone Splitting
Draw a line on a zone. It splits into two. Assemblies follow. Undo if you change your mind.
Roovie lets users split building zones by drawing directly on the 3D model.
Click two vertices on a zone boundary. The zone splits into two independent thermal zones along that line. Each new zone gets its own geometry, dimensions, surfaces, and assemblies. The original zone is preserved for undo.
This is the fastest way to go from a single large zone to a more granular thermal model without leaving the 3D viewport or opening a CAD tool.
In One Line
Click two points on a zone. It becomes two zones. Assemblies, surfaces, and naming handled automatically.
How It Works
Enable Split Tool
→ View switches to overhead (2D) mode
→ Click first vertex on zone boundary (green marker)
→ Hover shows preview line to cursor
→ Click second vertex on same zone (red marker)
→ Dialog opens with naming and assembly options
→ Confirm split
→ Two new zones created, original soft-deleted
→ Undo available for 30 minutes
The entire operation happens in the browser. No file export, no external tool, no geometry scripting.
The Drawing Experience
When the split tool is active, the viewport switches to an overhead view and displays interactive vertex markers on every zone boundary.
Vertex Markers
- Blue markers indicate available vertices
- Green marker indicates the selected start point
- Red marker indicates the hovered end point
Each marker has a large invisible hit area (larger than the visible circle) for reliable clicking. Markers are rendered above the zone geometry with depth testing disabled, so they are always visible and clickable regardless of camera angle.
Preview Line
After the first click, a dashed rose-colored line extends from the start point to the cursor. This shows exactly where the split will occur before the second click commits it.
Constraints
- Both vertices must be on the same zone
- The start and end vertices must be different
- The zone must have at least 3 vertices
- The line must cross the zone properly (both resulting pieces must have at least 3 vertices)
- Pressing Escape cancels the current drawing or deactivates the tool
What Happens After The Split
Automatic Directional Naming
The system names the two resulting zones based on the angle of the split line:
- A horizontal split produces "Zone Name (North)" and "Zone Name (South)"
- A vertical split produces "Zone Name (East)" and "Zone Name (West)"
- Diagonal splits use the closest cardinal pair
Existing directional suffixes are stripped from the original name before new ones are added, so splitting "Living Room (North)" produces clean names like "Living Room (Northeast)" rather than nested suffixes.
Names are editable in the confirmation dialog before the split is committed.
Geometry Calculation
The backend uses a half-plane clipping algorithm to divide the zone polygon:
- The split line is extended far beyond the polygon bounds
- Each vertex is classified as left or right of the line using the cross product
- Edge-line intersections are computed using parametric equations
- Two new polygons are constructed from the classified vertices and intersection points
Both resulting polygons have their area, dimensions, and volume recalculated using the Shoelace formula. Floor area, width, length, depth, height, and volume are all updated to reflect the new geometry.
Assembly Handling
The confirmation dialog offers two options for how assemblies (walls, roof, floor, ceiling) are handled:
- Share assemblies — both new zones reference the same assembly instances. Changes to one affect both. Best when the zones share identical construction.
- Clone assemblies — each new zone gets independent copies of all assemblies. Changes to one do not affect the other. Best when the zones will be modified independently.
Cloned assemblies are named with a "(Split 1)" or "(Split 2)" suffix and carry a reference back to the original assembly for traceability.
Surface Generation
Each new zone receives properly oriented surfaces:
- Exterior walls are distributed by cardinal direction (north, south, east, west)
- The roof is assigned to the top floor zone
- Floors are assigned to all zones
- Ceilings are assigned to intermediate floors
- Windows and doors follow their parent wall assignments
Area Preview
The confirmation dialog shows an estimated floor area for each resulting zone before the split is committed. This uses a centroid-projection calculation on the client side, with the authoritative area computed on the backend after confirmation.
Undo Support
Every split operation generates an undo token that is valid for 30 minutes. The undo operation:
- Deletes both new zones
- Deletes any cloned assemblies
- Restores the original zone from its soft-deleted state
- Updates the building's zone references
The original zone is soft-deleted (not hard-deleted) during the split, so the full original state is preserved for recovery. After the undo window expires, the original zone remains in the database as a historical record.
Coordinate Systems
The split tool operates across three coordinate systems:
- Data space — the building model's native coordinates (x horizontal, y depth, z elevation)
- Scene space — Three.js rendering coordinates (x horizontal, y elevation, z negative depth)
- Split 2D space — the overhead projection used for polygon clipping (x horizontal, z depth)
Conversions between these spaces are handled by a dedicated coordinate transform layer. All coordinates are stored with 4-decimal precision to match database storage.
Database Operations
The split operation uses MongoDB transactions when available (replica sets) with ordered-operation fallback for standalone databases:
- Fetch the original zone
- Validate floor vertices (minimum 3)
- Run half-plane clipping to produce two polygons
- Calculate dimensions for both zones
- Clone assemblies if configured
- Create both new zones
- Update the building document (remove original, add new zones)
- Soft-delete the original zone
- Generate an undo token with a 30-minute expiry
- Create revision records for the audit trail
All steps are wrapped in a single transaction. If any step fails, the entire operation rolls back.
Revision Tracking
Every split is recorded in the building's revision history:
- Who performed the split
- When it occurred
- The original zone (marked as removed)
- Both new zones (marked as added)
- A description: "Split zone 'Original Name' into 'Name A' and 'Name B'"
This provides a full audit trail for building model changes.
What Makes This Different
Most building energy tools require geometry editing in a separate CAD application. The user exports the model, edits it externally, and re-imports. That round-trip is slow and error-prone.
Roovie's split tool is different because:
- It operates directly in the 3D viewport — no export/import cycle
- The drawing interaction is vertex-based — click two points, not freeform drawing
- Assembly inheritance is configurable — share or clone, decided per split
- Directional naming is automatic — no manual renaming needed
- Undo is built in — mistakes are recoverable for 30 minutes
- The operation is transactional — either the split succeeds completely or nothing changes
The tool is designed for building energy modelers who need to refine zone boundaries without becoming CAD operators.
Bottom Line
Roovie's zone splitting tool lets users draw a line across a zone in the 3D viewport and produce two independent thermal zones with properly calculated geometry, oriented surfaces, and inherited or cloned assemblies.
It removes the most common geometry bottleneck in building energy modeling: the need to leave the analysis environment to refine zone boundaries. Split, name, choose assembly handling, and continue working — all in one tool.
Ready to see it in action?
Get early access to roovie and start running building energy simulations at cloud speed.
Get Started