Wall tools, Opening tool & Cut tool Coming
ComingThis feature is designed but not in DimSum yet. This page describes how it will work.
Draw a wall line once and the Wall behavior measures everything about it (length, height, corners, T-intersections, ends, openings, net area) as base properties; you build the studs, plates, sheathing and everything else as your own parts, list-matched to your own table items. The Opening tool cuts windows and doors into walls, and the Cut tool splits any member-based shape.
Overview
A Wall tool is drawn like any Linear tool: the line on the plan is the Wall Plane. It usually carries an Assembly (see Assemblies), an ordered stack of layers (siding, sheathing, studs + insulation, drywall) positioned around the Wall Plane, which places the layers correctly in 2D and 3D.
Nothing is hard-coded
It only measures the wall's geometry and exposes it as base properties: {Length}, {Height}, {Runs}, {L-Corners}, {T-Intersections}, {Ends}, {Opening Count}, {Opening Width Total}, {Wall Area}, {Net Wall Area}, {O.C.}…
You build every material as a part. For example, a "Studs" part with the formula
RoundUp({Item > Length} / {Item > O.C.}, 0) + 1 + {Item > L-Corners} * 2To still work out of the box, the optional Walls example library (pre-checked at setup) contains ready-made wall tools whose parts already have example formulas and list matches. Copy one and change it; delete it if you don't want it.
Walls aren't only for wood framers: a metal-stud partition, a CMU wall or a demising wall uses the same behavior with different parts and a different assembly.
The Opening tool places windows and doors on walls: it cuts the wall's layers, deducts their area, and exposes each opening's size so your own header / king / jack / cripple parts can count from it.
The Cut tool is a shared utility that splits beams, joists, rafters, wall plates and linear shapes at a point or along a cut line.
Where to find it
- Tools panel → DimSum Defaults → Walls (example library): Wall Tool (assembly-driven); Exterior Wall 2x6, Interior Wall 2x4, Plumbing Wall 2x6, Knee Wall, Pony Wall, Gable End Wall (drawn on an elevation face), Shear Wall; Opening Tool.
- Tool Designer → Tools → New → Behavior = Wall to build a wall tool from nothing.
- Takeoff ribbon → Cut for the Cut tool.
How to use it
Draw walls
- Arm a wall tool (e.g. Exterior Wall 2x6).
- In the Tool Settings dialog (if prompted), check the Assembly, the Stud Material slot, Wall Height (default
{Level > Plate Height}) and O.C. spacing. - Check the Placement reference (default Exterior face of studs).
- Click along the wall line (continuous or segment mode). Pick Line and Trace Path work too.
Backspacepicks up the previous point;Nstarts a new run in the same instance. - Press
Tabwhile drawing to flip which side is exterior. A preview shows the layers on the correct side. - Press
Enterto finish the run. Keep drawing runs; L-corners, T-intersections and free ends are detected where walls meet. Escstops the tool.
Build a wall tool from scratch (walkthrough)
This is the "build your own" path. The example library does the same thing for you, ready to copy.
- Tool Designer → Tools → New, base type Linear, Behavior Wall. Name it "Ext Wall 2x6 – 9'".
- Base Properties tab: tick the wall measurements you want visible: Length, Height, L-Corners, T-Intersections, Ends, Opening Count, Net Wall Area.
- Custom Properties tab: add what your rules need, e.g.
Plate Count(number, default 3),Stud Size(dropdown from the Dimensional Lumber list, default 2x6),Wall Type(dropdown from a Wall Types list; the tool's color can follow it, e.g. "Ext 2x6 10'" = Dark Teal). - Parts tab, add:
- Studs: Qty
RoundUp({Item > Length} / {Item > O.C.}, 0) + 1 + {Item > L-Corners} * 2 + {Item > T-Intersections} * 2. List Match: Stud list,Nom. Size = {Item > Stud Size}ANDWall Height = {Item > Height}→ e.g. "2x6x104 5/8 Stud". - Plates: Qty
RoundUp({Item > Length} * {Item > Plate Count} / 16, 0). List Match: "2x6x16". - Sheathing: Qty
RoundUp({Item > Net Wall Area} * (1 + {Waste %}) / 32, 0), Waste % list-linked to the 10% default. List Match: "7/16 OSB 4x8". - Drywall, Insulation, Housewrap, Nails, Labor (optional): same idea, each reading the wall's base properties.
- Use the Condition Builder or a decision-table list for anything with branches (e.g. treated bottom plate only if
{Item > On Slab}). - Tools Playground: draw a sample wall with a corner and a window and check every quantity. Coming Save to your
.tsum.
Change the reference on one run
Select one wall shape → Properties → Placement reference → e.g. Centerline. It's marked ◆ (shape override). The drawn line doesn't move; the layers re-stack around it.
Different heights on one level
A 12' great-room run in a 9' wall instance: select the run → Height → 12'-1 1/8" (◆), or make a second instance. Height defaults to the level's plate height; the override flows into every part that reads {Item > Height}, so the stud list match picks the longer stud automatically.
Place an opening (window or door)
- Arm the Opening Tool (or a tool you built from it, like "Window 3050").
- Set Width, Height and Sill or Head height (typed, or asked for when the tool is placed — tick Input on the property).
- Click on a wall where the opening goes. It snaps to the wall line.
- The wall's layers are cut and their area deducted. The wall's
{Opening Count}and{Opening Width Total}update. The opening shows in 2D and 3D. - Header, king, jack and cripple quantities come from parts you build on the Opening tool (the example library includes a set), reading the opening's own Width, Height and Sill.
On an elevation page, place openings on a face to cut siding/sheathing there.
Cut tool (shared)
- Arm Cut from the Takeoff ribbon.
- Optional: set a Gap (e.g. the width of a beam, or 0 for a simple split).
- Click a member or shape to split it at that point, or drag a line to cut everything it crosses.
- Each piece gets its own length (and its own label for beams).
Works on Beam, Joist, Rafter, Wall plates and Linear shapes.
Options & settings
Wall base properties (what the behavior measures)
| Property | Meaning |
|---|---|
{Length} | Total drawn length of all runs (at the drawn reference line) |
{Height} | Wall height (default {Level > Plate Height}; per-instance/shape override) |
{Runs} | Number of separate runs (shapes) |
{L-Corners} | Corners where two wall runs meet end to end |
{T-Intersections} | Places where another wall's end meets this wall mid-run |
{Ends} | Free wall ends (not joined to another wall) |
{Opening Count} | Openings placed on this wall |
{Opening Width Total} | Sum of opening widths |
{Wall Area} | Length × Height, one side |
{Net Wall Area} | Wall Area minus opening areas |
{O.C.} | The spacing setting (for your formulas) |
| … | Plus the Linear base properties (Linear Total, Volume, 3D Length…) and any custom properties you add |
Corner counts follow the ownership rule below: the wall drawn first owns a shared L-corner, so {L-Corners} never double-counts across two instances. Other properties may still be added (e.g. per-side net areas, opening area); see the open questions.
Placement reference
Set on the wall tool and overridable per shape:
| Reference | The drawn line is… | Typical use |
|---|---|---|
| Exterior face of studs (default) | the outside of the framing (sheathing goes outside the line) | Most common: tracing the stud line on plans |
| Centerline | the center of the studs | Interior partitions, CAD centerlines |
| Interior face of studs | the inside of the framing | Tracing from inside dimensions |
| Exterior finish face / Interior finish face | the outermost / innermost layer | Tracing overall wall outlines |
| Custom offset | any distance from a chosen layer | Special cases |
Tab flips which side is exterior. Each shape remembers its own reference and side, so one wall instance can mix them.
Corners between two walls
When two wall instances meet at an L-corner, the wall drawn first owns the whole corner. It counts in that wall's {L-Corners}, and the second wall counts nothing there — so a corner is never counted twice and never split in half. No formula gymnastics ({L-Corners} / 2 and the like) are needed.
- Ownership is recorded when the corner forms, and it stays with the first wall even if the second one is edited later.
- Delete the owning wall and the corner passes to the remaining wall.
- Select a corner and choose Reassign corner if you want the other wall to own it.
Snap points on every shape
So the second wall lands exactly on the first, every drawn shape exposes snap points:
| Snap point | Where |
|---|---|
| End | Each end of a run |
| Corner | Each corner in a polyline run |
| Face | The wall's exterior and interior faces (and each layer face) |
| Centerline | The middle of the studs |
| Midpoint | Halfway along a run |
Hover shows the snap marker and its name; snapping to one makes the join exact, which is what lets the corner, T-intersection and end counts be right. Snap types and tolerance are set in Settings → Canvas & Drawing.
Per-shape settings
| Setting | Instance default | Per-shape override |
|---|---|---|
| Placement reference | ✅ | ✅ ◆ |
| Exterior side (flip) | ✅ | ✅ ◆ |
| Base Elevation | Level (see the level elevation model in 3D settings) | ✅ ◆ |
| Height | {Level > Plate Height} | ✅ ◆ (e.g. a lower garage run, a taller great room) |
| Vertex elevations | ✅ ◆ (e.g. a raked gable run) | |
| Assembly, slots, spacing, layers, parts | ✅ | — (instance only) |
Wall settings (Tool Settings dialog)
| Setting | Default |
|---|---|
| Assembly | From the tool |
| Dynamic slots | e.g. Stud Material: 2x4 / 2x6 / 2x8 |
| Wall Height | {Level > Plate Height} |
| Base Elevation | Level elevation |
| O.C. spacing | 16" (used by the assembly's framing layer and by your formulas via {O.C.}) |
| Exterior side | Flip with Tab |
| Include/exclude layers | All on |
| Custom properties | Whatever your tool adds (Plate Count, Wall Type, Treated Bottom Plate…) |
Opening settings
| Setting | Meaning |
|---|---|
| Width, Height | Rough opening size |
| Sill / Head height | Position in the wall |
| Counts | Opening count by size (e.g. "3050" × 6), for reports and schedules |
| Parts | Yours: header, kings, jacks, cripples, trim, flashing… built with formulas on the opening's properties |
Cut tool settings
| Setting | Default |
|---|---|
| Mode | Click (single point) or drag (cut line across many) |
| Gap | 0 |
Examples
Framing: 2x6 exterior wall with a window (user-built rules)
One run: 40'-0", Height 9'-1 1/8" (109 1/8"), O.C. 16", both ends are L-corners, one T-intersection, one window 3'-0" × 5'-0" RO. Assembly: 7/16" OSB | 2x6 studs + | 1/2" GWB.
What the behavior measures (no rules involved):
| Property | Value |
|---|---|
{Length} | 40'-0" |
{Height} | 9'-1 1/8" |
{L-Corners} | 2 |
{T-Intersections} | 1 |
{Opening Count} | 1 |
{Opening Width Total} | 3'-0" |
{Wall Area} | 40 × 9.094 = 363.75 sf |
{Net Wall Area} | 363.75 − 15 = 348.75 sf |
What one user built (EXAMPLE formulas; your rules may differ, and DimSum has none of its own):
| Part | Example formula | Result | List match |
|---|---|---|---|
| Studs | RoundUp({Item > Length} / {Item > O.C.}, 0) + 1 + {Item > L-Corners} * 2 + {Item > T-Intersections} * 2 + {Item > Opening Count} * 4 | 30 + 1 + 4 + 2 + 4 = 41 | "2x6x104 5/8 Stud" (decision table: 9'-1 1/8" wall with 3 plates → 109 1/8 − 4 1/2 = 104 5/8") |
| Plates | RoundUp({Item > Length} * {Item > Plate Count} / 16, 0) with Plate Count = 3 | 120 LF ÷ 16 = 7.5 → 8 | "2x6x16" |
| Sheathing | RoundUp({Item > Net Wall Area} * (1 + {Waste %}) / 32, 0), Waste % = 10% | 383.63 ÷ 32 = 11.99 → 12 | "7/16 OSB 4x8" |
| Drywall | RoundUp({Item > Net Wall Area} * (1 + {Waste %}) / 48, 0) | 383.63 ÷ 48 = 7.99 → 8 | "1/2 GWB 4x12" |
| Insulation | RoundUp({Item > Net Wall Area} / 75, 0) (75 sf/bag sample) | 348.75 ÷ 75 = 4.65 → 5 | "R21 Batt" |
On the Opening tool, the same user built: Header length {Width} + 3" = 36 + 3 = 39" (3'-3"), List Matched to a header table by width (e.g. 2-ply 2x10 up to 4', a sample value); Cripples RoundUp({Width} / 16", 0) * 2 = RoundUp(2.25) × 2 = 3 × 2 = 6. Note that the Studs formula above already counts the opening's 2 kings + 2 jacks through {Opening Count} * 4; you choose where each part is counted, just don't count it twice.
Placement reference: same line, different stacks
2x6 wall, OSB 7/16", GWB 1/2" (offsets from the drawn line, + = exterior):
| Reference | OSB | Studs | GWB |
|---|---|---|---|
| Exterior face of studs | 0 → +7/16" | 0 → −5 1/2" | −5 1/2" → −6" |
| Centerline | +2 3/4" → +3 3/16" | +2 3/4" → −2 3/4" | −2 3/4" → −3 1/4" |
| Interior face of studs | +5 1/2" → +5 15/16" | +5 1/2" → 0 | 0 → −1/2" |
Commercial: metal-stud partition
Interior partition, 3 5/8" 20 ga metal studs @ 16", Centerline reference, 60' long, 10' high, drywall both sides, no openings. The user's parts:
- Studs:
RoundUp({Item > Length} / {Item > O.C.}, 0) + 1= RoundUp(720 ÷ 16) + 1 = 45 + 1 = 46 - Track (top + bottom):
RoundUp({Item > Length} * 2 / 10, 0)= 120 LF ÷ 10' = 12 pieces - Drywall:
RoundUp({Item > Wall Area} * 2 / 48, 0)= 600 sf × 2 = 1,200 ÷ 48 = 25 sheets (4×12, no waste in this formula)
Cut tool: concrete footing pours
A 140 LF Linear footing is split with the Cut tool at a construction joint 80' along → two shapes of 80' and 60' in the same instance, so each pour can be reported.
Tips & shortcuts
- Start from the example Exterior Wall 2x6 and change its formulas rather than building from nothing.
- Put your framing rules in decision-table lists (wall height + plate count → stud item) instead of long IF chains.
- Drive the wall color from a Wall Type list so every "Ext 2x6 10'" wall is Dark Teal automatically.
- Trace the stud line on the plan with the default reference; switch single runs to Centerline only where the plan dimensions to centers.
- Watch the layer preview while drawing and press
Tabbefore finishing if the exterior is on the wrong side. - Put openings on walls before reviewing sheathing counts; they deduct area.
Rules, limits & edge cases
- DimSum never adds studs, plates, headers or cripples on its own. A wall tool with no parts produces measurements only.
- Vertical wall planes come from Linear walls with Height (plan pages) or from Area tools on elevation pages; "Wall from line" is a later item.
- The Gable End Wall variant is drawn on an elevation face.
- An opening must be placed on a wall (plan) or on a face (elevation page).
- Shear Wall variants carry their own sheathing and nailing properties (as custom properties).