Property System
Partly availableSome of what this page describes is in DimSum today and some is still coming. Parts marked Coming are designed but not built yet.
Every value you fill in becomes a named Property, with its own units, display and rules, that you can reference in formulas, and later in labels, stamps and reports.
Overview
"Everything is a property" is one of DimSum's core principles. A job's name, an item's height, a part's Qty, your own Stud Spacing or Labor Rate: each is a Property with a name you can use in a formula, like {Height} or {Job > Labor Rate}.
There is one kind of property. means only preloaded, and you cannot delete it — nothing less. A Height that came with the tool and a Stud Spacing you invented this morning carry the same settings, sit in the same grid, and open the same Settings….
"EVERY SINGLE PROPERTY, NO MATTER IF ITS GENERAL, APPEARANCE, ANYTHING always gets the same rules, the same property things that I outlined in my Properties.md when I handed it over. This is the rule, no exceptions."
So there is no second class of property with fewer knobs. What a preloaded property still refuses is being renamed and being deleted, and both of those stay on its right-click menu, greyed, saying why.
Why it matters to an estimator:
- Formulas can use anything. A part's Qty can use the item's length, its height and your own O.C. in one formula.
- Units are handled for you. Divide a length in feet by a spacing in inches and you get a count of spaces, not nonsense.
- Change it once. Change the job's Labor Rate, or rename a property, and everything that uses it follows.
- Reports can show anything ( — the Report Designer's field list offers every property on the job's parts, custom ones too; see Report Designer). Any property can be a report column or a field in a header.
Default properties. Every part and every takeoff item starts with a set of default properties, in groups. None of them can be deleted, and you can add as many of your own as you like.
So DimSum does no money maths of its own. Every part does carry Cost Each, Markup %, Price Each, Tax Rate and Taxable, because they are on the default list, but they are blank fields with no maths. There is no Currency type: a cost is a Number, shown without a $.
Where to find it
| Where | What you do there | Status |
|---|---|---|
| Properties panel (right panel), item selected | The item's properties in groups (General, Measured, Dimensions, Appearance, Classification, Location, Audit), your own properties with + Add property, and its Parts | |
| Part editor (click a part in the panel) | The part's properties in groups (General, Quantity, Cost, Product, Classification, Appearance, 3D, Audit), Only set / Show all, + Add property | — see Parts |
| Settings… (right-click any property) | Change its group, hint, condition, unit, decimals, list, slider range, Input, Hidden or Locked later — and its Lists / Tables row answers a list or a table, which makes the property a dropdown that fills in its neighbours. the row is called Material Library: Lists / Tables | the new name **** |
| Add existing property… (beside + Add property on an item or a part) | Pull in one of the job's properties and write the linking formula | |
| Show hidden (n), in the grid's filter strip beside Only set / Show all | List the properties that are out of the way — the other tool kinds' measures, and any you hid | |
| The unit box beside a part's Qty | What the Qty counts: ea, sheet, box, hr… It belongs to the part, not the property | |
| Project Settings → Job properties | The job's own properties (a Labor Rate, a Tax Rate) | — see Project Settings |
| System Settings → Numbers | Decimal places for every number that has none of its own | — see Settings page |
| System Settings → Units | What DimSum knows, grouped by dimension, with your own units beside them — and every property whose unit changed when a property stopped having two | — see Settings page |
| System Settings → Custom Properties | The machine's catalogue of custom property definitions, handed to every job as it opens | — see Settings page |
| fx on any row, with the Property Picker | Turn a value into a formula; pick what it reads with two clicks | — see Formula language |
| Tools tab → a tool → Properties tab | The tool's own property grid: what it measures, the item fields, and + Add property for your own. Every item placed from it gets them | — see Tool Designer |
The Place <name> dialog, when you click a tool with questions | Answer its Input properties before the item lands | |
| Tool Designer → any tool property → Settings… | Its group, hint, units, decimals, list, condition, Input, Hidden or Locked | |
| Tool Settings dialog → Form / Input / Advanced (right-click an item → Settings…) | Every property of an item in one dialog; Advanced is where an item's Name has an fx | (Tool Designer) |
| Any property → Settings… → Material Library: Lists / Tables → a table | Link the property to a column of a table — the file's own, or a library's on this machine — and say what every other column sets. a tool's table is always in a material folder, another file, so a pick copies the values in with the three names (Undo Choose Fox in Framing). The property becomes a dropdown of that column; picking a row fills in the rest as one undo. the dropdown has two groups, Lists and Tables, with no folders | (Lists / Tables). Set from a table… is retired; this row is where it went |
| The Material Library in the Tools tab | Your own shared lists, which any property's List can point at. Division and Trade ship as lists here. They are the Material Library's Lists, and its Tables hold every table in every library of yours | Tables are; the Material Library ****; Dynamic Lists with columns and list-linked defaults are Coming; List Matching is now the Advanced Part |
| Settings → User / Company / Custom Settings | App-wide properties (Settings page) | Coming |
How to use it
Change a value
- Click the value. A box opens with the value as you would type it.
- Type the new value the way you would write it:
10' 6 1/2",16",10%,12.50,yes,#3A7. - Press Enter or click away. Esc puts it back.
- If DimSum can't read it, it says why under the box and keeps what you typed so you can fix it, e.g. "16" is a length; Area is in square feet".
Each type has its own control. A Checkbox is a checkbox (one click). A Slider is a slider you drag, with its value beside it — and so is any Number given both a Min and a Max. A property with a List offers its choices when you click it. Empty the box and press Enter to go back to the default, or click ↺ at the end of the row.
Use a formula
Click fx on the row. Write the formula, watch the result under it, press Enter or Apply. The row then shows the result, and fx stays lit; hover the value to see = {Linear} * {Height}. Typing a plain value over a formula replaces the formula. See Formula language.
Height, Colour, Line Width and Name take a formula too, and the answer reaches the canvas, the Project Tree and every list, not just this panel. Both halves are closed: "EVERY SINGLE PROPERTY… always gets the same rules." A part's unit and a tool's own Type (Linear, Area, Count) still take none.
There is no Qty Unit row any more. It takes no formula, because it is a unit.
Reference a property with the Property Picker
- Click fx on the value you want to calculate, e.g. a part's Qty.
- Click Property Picker in the formula toolbar.
- On the left, click where from: This part (Studs), Parent, Item (Ext Wall 2x6), Sibling parts, Child parts, Page, Level or Job.
- On the right, click the property, e.g. Linear. DimSum types
{Item > Linear}at the cursor. - Finish the formula, e.g.
ROUNDUP({Item > Linear} / {Item > O.C.}, 0) + 1.
the Picker is the tree it picks from. So the tool is a group named for the tool (Ext Wall 2x6, not "Item"), with its own properties and then its parts nested inside it, as deep as they go — a part three deep is three deep here — and the part you opened it from is expanded and highlighted, so where am I? is answered without scrolling. Then Page, Level and Job exactly where they were, and Table and Material. What it types is the same reference as ever ({Parent > Plates > Qty}); a cousin or a grandchild is simply reachable now. From a job property, only Job.
Add a property of your own
On an item, on a part or on the job (Project Settings → Job properties), click + Add property and fill in the dialog. Only Name and Type are required; the dialog offers the other fields that fit the type you picked.
| Field | For | What to put | Example |
|---|---|---|---|
| Name | every type | What you'll call it in formulas. Can't contain [ ] \ / or :. Up to 64 characters | Stud Spacing → {Stud Spacing} |
| Type | Number · Percentage · Slider · Text · Checkbox · Color | Number | |
| Group | every type | Where the row sits. Custom on items and parts and Job on the job, unless you type another group's name | Custom |
| Hint | every type | The text you see when you hover the property's name | On center, in inches |
| Input Condition | every type | A formula. The row shows only while it is true (below) | {IS TRIM} |
| Units | Number, Slider | The unit: what the number is stored in, what a bare typed number means, and what a formula reading it gets. Picked from a dropdown, never typed — the list is System Settings → Units. Its kind drives the maths: in makes it a length, sf an area. The dropdown is grouped by kind, and $ (dollars) sits under Money in every one — a property's as well as a table column's | in |
| Show as feet and inches | a Number or Slider in a length | A tick, not a unit. On, the value is written 9' 6 1/2" to the Fraction below it; off, it reads in its own unit. It appears on a length and nowhere else | On |
| Decimal places | Number, Percentage, Slider | 0 to 6. Blank = System Settings → Numbers (2 unless you changed it). Greyed while Show as feet and inches is on | 0 |
| Fraction | a Number shown as feet and inches | How finely feet and inches are written: 1/2", 1/4", 1/8", 1/16", 1/32" or 1/64" — It sits beside the tick, where Decimal places is greyed, and the two swap as the tick goes on and off. Blank = 1/16", which is what every property showed before | 1/8" |
| Percent style | Percentage, and a Slider in % | Percent (10%) or multiplier (1.10) | Percent |
| List | Text, Number | Choices, one per line. They are offered when you click the value | Ext / Int |
| Only allow choosing from list | with a List | On: anything not in the list is refused. Off: the list is offered and anything else you type is kept | On |
| Slider range | Slider | Min, Max and Step | 0, 100, 5 |
| First value | optional | Typed the same way as any value | 16 |
Click Add. The property and its first value are one Ctrl+Z. New item like this, Ungroup and Duplicate copy it with the rest, and a tool carries it to every item placed from it.
On a tool, the dialog only keeps the name, the type and the first value. Fill in a Group, a Hint, Units, a list, decimals or an Input Condition there and the tool refuses it rather than dropping it quietly: "A template property can only carry its name, type and first value in this build — Units, Hint would be lost. Add it with a name and a type, and set the rest on the item for now." The rest of the settings are Coming in the designer.
A name that clashes is refused with the reason: "There is already a built-in property called Qty", or "There is already a property called Waste % here".
Image is still not offered. The dialog shows it greyed — "Image properties come in a later build" — so Icon and Texture are still Coming, and which build brings them is to confirm.
Every property also carries Hidden and Locked, as the list asks ("Visiblity/ Lock"), and both are ticks in Settings… on any property, in a job and in the Tool Designer. A locked row is shown but not typed into, with a padlock and the badge Locked — shown, not editable. A hidden row is out of the list until Show hidden. To hide a row by a rule rather than by hand, use an Input Condition instead.
Your own properties follow you between jobs
A property you invent is still defined on the item, part or job you added it to, and its value still lives there — none of that changed.
- Harvested up, never moved. Opening a job copies any definition the catalogue has not got into the catalogue. The job keeps every definition and every value exactly where they are — reading takes nothing away, and no job is rewritten to get this.
- Handed to the next job as it opens, defining only what that job has not got: one step, one
Ctrl+Zhowever many it made, and a second open writes nothing. - The job's own always wins inside that job. A value names its definition by id, so replacing a job's definition with the machine's would strand every number that pointed at it. A hidden property of that name counts as being there, and so does a preloaded one — an entry called Width is never installed over the Width every part already has.
- Two jobs that disagree are both left alone. The catalogue keeps the first one it harvested; the second is neither dropped nor merged, and it is listed under Jobs that disagree: "Insulation R Value is a number (R) here and text in this job." Neither job changes.
- Removing an entry from the catalogue touches no job. It only stops being offered to the next one, and the page says so.
What a job stores is its values — and, for a property this machine has never heard of, its own definition, which the next harvest picks up.
Settings… on every property
Right-click any property → Settings…. Not just your own: Height, Colour, Qty, Division, Opacity, the Audit rows — every one of them. Change what you want and click Save. It is one command: one Ctrl+Z puts every setting you changed back.
Settings change how a property is shown, grouped, explained and asked for. They never change its value or a formula.
On a preloaded property two things are read-only in the dialog and say so:
- the Name carries a
· preloadedtag, with "Height came preloaded, so its name stays. Everything else here is yours to change." - the Type is fixed once a property exists, preloaded or not: "A property's type is decided when it is made."
Everything else is yours: Group, Hint, Units, Decimal places, the List, Input, Hidden, Locked, the Input Condition, and a Slider's range. Per job and per tool, separately — a change to the wall in your library does not reach a job you already drew.
One place it is not offered: a read-only library such as DimSum Defaults. Nothing there can be changed at all, so Settings…, Hide, Rename… and Delete are off that menu entirely. Copy the tool into a library of your own and they are all back.
Show a property only when it applies: Input Condition
An Input Condition is a formula on a property. While it is true the row shows; while it is false the row gets out of the way. Written as a formula, for example {IS TRIM} (or {IS TRIM} = TRUE).
- On a part, + Add property → IS TRIM, Checkbox. Tick it.
- + Add property → Trim Color, Color, Input Condition
{IS TRIM}, first value#FFFFFF. It shows like any other row. - Untick IS TRIM. With the part editor on Only set, Trim Color is hidden. Switch to Show all: it is there, dimmed, with the note "Hidden while [IS TRIM] is off".
- Tick IS TRIM again: Trim Color is back with the same colour.
The rules:
- It only decides whether the row shows. A hidden property keeps its value, and formulas and the Estimating tab still use it.
- A broken condition never hides a value. If the condition is in ERROR, the row shows, and hovering it gives the error.
- Each owner is judged on its own values. The same condition on twenty parts shows the row on the parts where it is true.
- Renaming is safe. Rename IS TRIM (or a part the condition names, or move that part) and the condition is rewritten, like a formula. Delete property… counts it too: Studs › Trim Color (condition).
- The default properties have no condition
A part's classifications follow its parent
Division, SubDivision, Construction Phase and Trade are the only properties that take a value from above. On a part, each of the four looks up the tree until it finds one:
- what is set on this part;
- the part above it, if the part is nested under another part;
- the item;
- blank.
- A value that came from above shows grey, and hovering it says where from: "from Ext Wall 2x6".
- It follows: change the item's Trade and every part still following it changes with it.
- Type your own on a part and that property stops following. It goes black and stays yours.
- Clear it (empty the box and press Enter, or click ↺) and it follows again.
- Each of the four is on its own: a part can take the item's Division and carry its own Trade.
Nothing else inherits. Every other property on a part still starts blank — its Cost Each, its Description, its Product Number, anything you added. See Parts.
Change how a number is shown
Three settings (in + Add property or Settings…) change how one property looks, never its value:
- Show as feet and inches: a length written
1'-4"rather than16.00 in, to the Fraction beside the tick. It is a spelling, not a second unit — the number is still stored in the property's own unit. To read a spacing in feet instead of inches, change its Units, which converts what is stored so that nothing on screen moves. - Decimal places:
2.75shows3at 0 places and2.750at 3. - Percent style:
10.00%or the multiplier1.10.
System Settings → Numbers → Decimal places sets the places for every number that has none of its own: 2 unless you change it, on every job on this computer, all at once. Feet-and-inches values ignore decimal places (they go to 1/16").
Formulas always use the full value, not what is shown: 2.75 shown as 3 still multiplies as 2.75.
The right-click menu on a property has Change value, Use a formula (fx) / Edit formula (fx), Clear — back to its default, and on your own properties Settings…, Rename… and Delete property….
One unit per property
That pair is gone. A property has one unit:
- It is stored in that unit, so there is nothing to convert on the way to the screen and nothing to convert back.
- It is picked from a dropdown, never typed — on a property's Settings…, on a table's column, and in the Import wizard.
ft-inis not a unit. It is a spelling: Show as feet and inches, a tick that appears on a length and nowhere else, sitting beside the Fraction that says how finely the inches are written. The number is still stored inftorin; the tick only decides how it is written down.- A custom unit converts to nothing but itself, and they appear in every unit dropdown.
Your jobs did not move. The change converts the stored numbers, not only the setting. A property that was stored in inches and shown in feet keeps the unit you were reading — feet — and every number stored against it is converted into it: 18 in shown as 1.50 ft is stored as 1.5 ft and still reads 1.50 ft. Nothing on any screen moved. Height, Width and Thickness are the exception: DimSum reasons about those itself and keeps them in its own inches, which is what they always stored.
The one thing no migration can fix is a formula. {Height} > 100, written when Height was inches, compares against feet now, and nothing can know which was meant. So every property whose two units differed is written down by name, with both units, and listed on System Settings → Units: "Height was stored in in and shown in ft; it is in ft now — the number on screen has not moved, and a formula that used the bare number may mean something else." It is a note and not a job: nothing resolves it and nothing undoes it, and with nothing to say the list draws nothing at all.
The colour wheel and the sliders
- A Colour is a wheel and a grid of premade colours, and there is no hex box anywhere. Click the swatch and the editor opens: the wheel, and the chips beside it — the four house colours first, then the 36 the picker has had It names the colour when it is one of the premade ones, and a colour you pick shows its hex under the swatch, to read and to copy. You cannot type one in: the wheel's own dialog is where an exact value is set.
- A number given both a Min and a Max draws as a slider, with its number beside it. It is the setting that decides and not only the Type, so filling in a range on an ordinary Number turns it into a slider.
- Both of them, everywhere a property is edited: the Properties panel, the Tool Settings dialog, the designed form, and the Place… dialog when the tool is placed.
Rename or delete a property
- Rename…: every formula and Input Condition that used the old name is rewritten to the new one in the same step, so nothing breaks and one
Ctrl+Zundoes both. Rename Stud Spacing to O.C. and{Item > Stud Spacing}becomes{Item > O.C.}. Renaming a job property rewrites formulas across every item. - Delete property… always asks first.
Ctrl+Zbrings it back. - A preloaded property cannot be renamed or deleted — and the two entries stay on the menu, greyed, with the reason, instead of quietly not being there.
- Rename…: "Height came preloaded, so its name stays — formulas all over the job may be reading it. Everything else about it is yours to change in Settings…"
- Delete property…: "Height came preloaded and cannot be deleted. Hide it instead — it keeps its value, and formulas still reach it."
That is the whole of what means now. Everything past the name is on Settings… like any other property.
Hidden, locked and read-only
Hidden — not listed until you ask for it. It keeps its value, formulas still reach it, and an Input one is still asked for when the tool is placed. There are two kinds, and a shown hidden row says which:
| What the row says | What it means |
|---|---|
| Hidden — it belongs to another kind of tool | DimSum put it out of the way. A Linear tool still carries Area, Perimeter and Point Count; an Area tool carries Linear, Point Count, Section Count and Wall Area; a Count tool carries all of those. They are real properties with real values — just not the ones you measure with this tool |
| Hidden — you hid this one | Somebody ticked Hidden in its Settings…, or used Hide this property on its menu |
- The toggle is Show hidden (3) in the strip at the top of the grid, with the count in the label. On a part it sits beside Only set / Show all; on an item there is no Only set, so it sits there on its own. It appears when there is something hidden to show.
- Show this property on the row's menu (or unticking Hidden in Settings…) brings one back for good.
- Naming a new property after a hidden one brings that one back instead of refusing. Start typing
Areainto + Add property and the dialog tells you before you commit: "There is already a hidden property called Area — it belongs to another kind of tool. Add brings that one back instead of making a second." Click Add and it is un-hidden, with whatever value it already had. Nothing is duplicated, and oneCtrl+Zhides it again.
Be clear about how wide un-hiding goes, because it is not the same in the two places you can do it:
- In a job, un-hiding is job-wide. One preloaded property is one row for the whole job, which is how every other setting on it works — change Height's decimal places and every tool in the job shows them. So bringing Linear out on one Area tool brings it out on every Area tool in the job (and on the Count tools too).
- In the Tool Designer, hiding is per tool, because a tool keeps its own rows. Hide Thickness on your Ext Wall 2x6 and it is hidden there and nowhere else.
Locked — shown, but not editable here. The row draws a padlock, the value is plain text rather than a box, and a badge under it reads Locked — shown, not editable. It is a tick in Settings…, so you can untick it. A locked row still shows its value and still feeds formulas.
Read-only — there is nothing to type, ever. A measured value (Area, Linear, Perimeter), an audit stamp (Created By, Modified At) or a job field mirrored onto an item. This is not a setting and there is no tick for it; Settings… says so in words: "This one is read-only: it is measured from the drawing or read from elsewhere in the job, so there is nothing to type into it. That cannot be switched off — it is how the value is stored, not a setting." Hover the value and it tells you which: "Measured from the drawing — change the drawing to change it" or "Read from elsewhere in the job — change it there".
A read-only property can still be hidden, locked, grouped, given a hint, given decimal places and ticked as Input — it is only the typing that is out.
Input: ask for a value when the tool is placed
This is Prompt on Place, grown up.
- Open Settings… on the property and tick Input — ask for it when the tool is placed.
- Tick it in the Tool Designer and every job asks. Tick it on a tool already in a job and only that one does. Same dialog either way.
- Place the tool and one dialog opens, headed Place Ext Wall 2x6, listing every Input property, each with the tool's own value already filled in and its hint underneath.
- Each question gets an editor that suits it: a checkbox for a Checkbox, a drop-down for a property with a list, the colour wheel for a Colour, a slider for a number given both a Min and a Max, and a box with the unit beside it for everything else.
- Place puts the item down, selects it and arms its tool. One
Ctrl+Zundoes the whole placement. - Cancel or Esc places nothing at all — backing out of the questions backs out of the placement.
A hidden Input is still asked for, and the dialog says so: "Hidden on the tool, and still asked for here — this is where it gets answered." That is the point of hiding it — the value matters at placement and then gets out of your way.
One rough edge to know about in the place-time dialog: a property whose list is only a suggestion (with Only allow choosing from list off) is answered with a strict drop-down, so a value off the list has to be typed on the row afterwards.
DimSum Defaults' Ext Wall 2x6 (example) has its O.C. ticked, if you want to see one without setting it up. Keep it to the one or two values that really change per placement; a tool that asks five questions slows drawing down.
Pull in a job property: Add existing property…
- On an item or a part, click Add existing property…, beside + Add property in the Custom group.
- The dialog lists the job's own properties (the ones on Project Settings → Job properties), with a Find box. Each shows its name, its type and unit, and what it is set to now.
- Click one. DimSum makes a property of the same name and type right here and writes the linking formula for you, in one step and one undo:
{Job > Labor Rate}. - The row says what it follows: Linked — follows
{Job > Labor Rate}. Change the job's Labor Rate and this one follows. - Unlink — stop following the job is on the row's menu. It keeps your number: the link goes, and the value it was reading stays, as a plain value of your own. One
Ctrl+Zgives back the link and its formula together. After that the row is an ordinary property; type any number you like into it.
Clear is a different thing — back to the property's default.
A property can't be linked to the job and following a table row at once: setting it from a table replaces the job link, and the row says it follows the table.
A property the owner already has is greyed in the list, and says what to do instead: "Studs already has a property called Labor Rate. Put {Job > Labor Rate} in its formula to link it instead."
Renaming the job property afterwards is safe — the rename rewrites the formula, exactly as it does for any other formula, so the link keeps reading.
Where the button is greyed, and why:
- On the job's own panel — "These are the job's own properties — a part or an item is what pulls one in."
- The button is there, greyed, saying so.
A part's unit lives on the part
Qty Unit is gone as a row. It was always just Qty's unit — the unit the stored number is in — and a count label (ea, sheet, box) is a unit like any other. So:
- A part's unit is the small box beside its Qty number, on the same row. Type
sheet,box,lf,hr,cyor anything you like; the box suggests the common ones. Empty, it readsea. - The unit belongs to the part, not to the property, because it genuinely differs part by part: studs in
ea, sheathing insheet, glue intube, framing labour inhr— all on the same wall. One shared setting could not hold four answers. - So it is not a definition setting, and DimSum refuses to treat it as one. Pick a unit for Qty in its Settings… and it says where to go instead: "Qty's unit belongs to the part it is on — set it with part.set_qty_unit". In the Tool Designer, trying it on one part of a tool says "Qty's settings belong to the whole tool, not to one part of it — its unit is lib.qty_unit.set". Both are naming the command behind the box beside the Qty.
- It takes no formula, and never did.
- Everything else about Qty — its hint, its decimal places, whether it is Input, whether it is hidden — is on its Settings… like any other property. It is a preloaded property, not a special case.
See what you typed and what it converts to
So a number shows both readings, on one row: the value as the row reads it, and the second reading as a small line under it. 1'-4" with 16 in beneath it; hover and it says which spelling you are looking at.
A property has one unit now, so there is no second unit to put under a number. So the second reading stays, on a length with Show as feet and inches on, and it names the spelling rather than a second unit.
Hover the property's name and the unit is labelled: Units: in. It used to read a bare In ft, which is how an unlabelled unit gets misread.
- Everything else shows one number, as before, with no clutter where there is nothing to say.
- It does not appear on an ERROR row, or on a
—row with no scale, because there is no pair of numbers to show. - It shows on a plain number row. A slider, a colour, a checkbox and a strict drop-down show their control only.
One property, two readings. No second property to keep in step.
Add a job property
Project Settings → Job properties → + Add property, e.g. Labor Rate, Number, 45 → 45.00. (Typing $45 works too; the $ is read and dropped, because nothing in DimSum is money.) Any part or item reads it as {Job > Labor Rate}, and changing it changes every part that uses it at once.
Give a property a list of choices
A property's Lists / Tables row can be any of three things, picked in its Settings…:
- Its own values, typed below — type the choices in, one per line.
- A shared list — point it at one of the lists kept in the Tools tab, under Material Library → Lists. The drop-down in Settings… names each one with its count, e.g. Division (35). The row then says where its choices come from: Choices from the Division list. the Tool Designer's lists live in material folders, apart from the tools — the dropdown groups them Lists → DimSum Defaults and Lists → Custom → ‹folder› — so a tool's list property works like a link to a table in another folder — its choices come from the material folder while it is on this machine, and the value it holds is kept always (Tools and Materials apart).
- A table — the dropdown's groups say where each comes from: Its own values (typed below); Lists; in a job, Tables in this job; Material Library → Custom → ‹folder› for each folder that has tables; and Material Library → DimSum Defaults — absent while it is empty, as it is today. the Tool Designer's groups are Lists → DimSum Defaults, Lists → Custom → ‹folder›, Material Library → Custom → ‹folder› and Material Library → DimSum Defaults — the Custom groups being the material folders,
.tsumfiles in the Materials folder. Every table a tool links to is in another file: a pick copies the values in, with the folder's, table's and row's names, and newer values come through the update screen; nothing is followed live across files. Under a linked row it says what the link is: Choices from the Common Animals table in My Tools — sets Color, Action. there are no folders — the dropdown has two groups, Lists (Division (35), Trade (20), Wall Side (2) …) and Tables (Common Animals (3), Lumber (30), Lumber2 (30)), and a folder name appears only when two share a name. A link whose material folder is gone keeps its value: "Common Animals is in My Tools, which isn't in your materials folder — the value is kept". Picking one asks, in the same dialog, which column this property links to and what every other column sets; the property is then a dropdown of that column and picking a row fills in the rest.
Either way:
- With Only allow choosing from list on, anything else is refused: "Pick one of the list". Capitals don't matter, and the value is kept with the list's spelling: typing
extgivesExt. It works exactly the same on a shared list. - With it off, the list is a shortcut, and anything you type is kept.
Division and Trade are no longer hard-coded. They ship as real lists — in every job and every library — and their properties point at them. So:
- Their values were yours — you opened Material Library → Lists in the Tools tab, picked Division, and changed the 35 CSI divisions to your own numbering. Division and Trade couldn't be edited: they showed once, under DimSum Defaults, which is read-only. You can still point a property at a list of your own instead (below).
- Division and Trade moved to My Tools. A tool's built-in Division and Trade properties offer My Tools' lists while My Tools is on this machine — add a value there and it shows up in every tool's Division — and DimSum's preloaded values only when it isn't. A fresh install puts Division and Trade in the first material folder.
- Their names are not. Rename and Delete are on screen but greyed, because tools and jobs find those two lists by name: "Division is one of DimSum's own lists, so it can't be renamed — its values are yours to change" and "…so it can't be deleted".
- You can also point Division somewhere else entirely — at a list of your own — for one job or one tool.
Where a list lives. In the same file as the property pointing at it: a job's lists are in the .dsum, a library's in the .tsum, and nothing in a job ever reaches into a library. When you place a tool that points at a list of your own, the list travels with the tool into the job. That is why a job still opens whole with its library renamed away. Division and Trade are in every file already, so a tool copied out of DimSum Defaults always finds them. a tool folder keeps no lists; your lists moved once into a material folder of the same name, and Division, Trade and Wall Side show once, under DimSum Defaults, which is read-only.
Tables are built —: a job has no tables of its own, and a pick in a job writes the values, frozen, with three names. A table sets every property whose name matches one of its columns, creates the ones that do not exist, and lets a single column be pulled out on its own as a list. And the properties keep following the row: the row says Follows Framing — 2x6 @ 16", typing your own value stops that one, clearing it follows again, and Stop following the table kept the numbers — which took the job's own tables, and that ⋯ menu entry, away.
the List row answers a table as well as a list. Pick a table and Settings closes on the prompt:
- Which column sets this property?
- What else should this row set? — every column of the table against the properties the item already has, pre-matched by name, with All and None.
A property the item has not got is pulled in from the table, taking the column's name, its unit and its section. The whole thing is one gesture and one Ctrl+Z, and everything it made is an ordinary property afterwards — change its formula, clear it or unlink it as you would any other.
The honest limit: the List row is only drawn for a type that can have a list — Text, Number and the list-ish kinds. A Colour or a Yes/No has no List row to answer with, so those are still bound with Set from a table… on the item itself.
Coming: Dynamic Lists with columns (Dimensional Lumber → Name), dropdowns that read one of their columns, and list-linked defaults (Dynamic Lists & the Advanced Part).Add a property to a tool
Open the Tools tab, pick a tool, click its Properties tab. It is the same property grid you use on an item in a job — the Measured rows, the item fields, and Custom with + Add property — so nothing here behaves differently from the job. Every item placed from the tool arrives with those properties and their values.
Two differences worth knowing, both for plain reasons:
- Hiding here is per tool — a tool keeps its own rows, so hiding a row on your wall hides it on that wall and nowhere else. In a job, un-hiding is job-wide.
- Add existing property… is greyed — it pulls in a property of the job, and a tool has no job to follow.
The designer's formula box has its live result and the Property Picker, as a job's does — this page said otherwise reading two empty states as missing features. Check a whole tool by drawing with it on the Tools Playground, which replaced the Test Bench
See Tool Designer.
Answer a tool's questions when you place it
Options & settings
Scopes and paths
| Scope | Example | Status |
|---|---|---|
| Self | {Qty}, {Height}, {Stud Spacing} | |
| Parent | {Parent > Qty}, {Parent > Parent > Qty} | |
| The item | {Item > Linear} (also written {Item > …}) | |
| A sibling part, by name | {Parent > Plates > Qty} | |
| A child part, by name | {Studs > Qty} | |
| Children | SUM({Children > Qty}), COUNT({Children}) | — the direct child parts that are on; each one must have the property |
| Job | {Job > Name}, {Job > Job #}, {Job > Customer}, {Job > Labor Rate} (also {Job > …}) | : the three built-ins plus your Job properties |
| Page | {Page > Name}, {Page > Number}, {Page > Scale} | — the item's home sheet |
| Level | {Level > Name}, {Level > Elevation} | — the level the home sheet is filed under; Elevation in feet, blank for a section |
| Table | {Table > Framing > Stud Spacing} — the column of the row this item or part was Set from a table… with | |
| Material | {Material > Cost} — a column of the material a part is linked to; blank with a small warning when none is linked. the Property Picker no longer offers it, and a part can't be linked to a material any more (the Material row is gone); a formula that already names it still reads blank with its warning | not offered |
| ** List Matching is now the Advanced Part: the matched row fills the table's columns in as the part's own properties | ||
| User, Company, Settings | {User > Initials}, {Company > License #}, {Settings > Crew Rate} | Coming |
| Behind the scenes | {Defaults > Pitch Factor 6/12} | Coming |
| Assembly layer | {Layer > Subfloor > Qty} | Coming |
| Project-wide | SUMIF({Tools > Qty}, …) | Coming |
| Side | {Side 1 > Length} | Coming |
> is the only separator, and spaces around it are optional: {Parent>Qty} and {Parent > Qty} are the same reference, and DimSum always writes >. Between the braces a name may hold anything except {, } and > — spaces, dots, %, /, quote marks — so {Item > O.C.}, {Slack %} and {Parent > Subfloor 3/4" T&G > Qty} all read straight through with nothing to escape. Capitals never matter. A scope that isn't built yet shows ERROR and says when it arrives.
Property types
| Type | On screen | Notes |
|---|---|---|
| Number | The number in its unit, to its decimal places: 16.00 in, 1'-4" where it is written as feet and inches, 375.00 SF, 45.00 | Its unit says what kind of number it is: a length, an area, a volume, a time or a plain count. A cost is a Number with no unit |
| Percentage | 10.00%, or 1.10 as a multiplier | Stored as a fraction: 10% is 0.10 in formulas |
| Slider | A slider from its Min to its Max in Steps, with the value beside it | A number. A Slider in % (like Opacity) is a fraction, like a Percentage. any Number given both a Min and a Max draws as one too |
| Text | Text, kept exactly as typed | Can have a List, with or without Only allow choosing from list |
| Color | A swatch, with its hex shown under it: #33AA77. Click it for the wheel and the grid of premade colours | Stored upper-case. the hex is readable, never typable — there is no hex box anywhere |
| Image | Coming (Icon, Texture). It was planned for and did not land; which build brings it is to confirm |
Length, Area, Volume, List and Currency are no longer types. A length is a Number whose unit is ft or in, an area one in sf, a volume one in cy. A list is a setting on a Text or Number property. A cost is a plain Number.
What each property carries
, and also a Type, a Hint, an Input Condition, decimal places and a List.
| Asked for | In DimSum | Status |
|---|---|---|
| Name | Name, the name you use in formulas | |
| Type | Type: Number, Percentage, Slider, Text, Checkbox, Color | (Image is still greyed) |
| Property Group | Group: the default groups on parts and items, Custom, Job or your own | |
| Hoverd Text/ Hint | Hint, on hover over the name | |
| Input Condition | Input Condition, a formula that shows the row while it is true | |
| Input Units: "Default Units from Default Settings" | Units — one unit per property, picked from a dropdown, the list edited in System Settings → Units | A default unit per kind of number, set in System Settings, was planned for and is still Coming |
| Output Units: "ONLY IF THEY CAN BE Converted" | Gone as a setting. A property is stored in its one unit; to read it in another you change the unit, and what is stored is converted with it. What is left of it is the Show as feet and inches tick | Superseded — to 8 had two units, and the migration kept the one you were reading |
| Numeric Visiblity Depth: "pulled from a default in the system settings" | Decimal places, per property, else System Settings → Numbers | |
| List / List Type, and "Only allow choosing from list" | List typed into the property, and Only allow choosing from list | Pointing it at a shared list is |
| Visiblity/ Lock | Hidden and Locked, each a tick in Settings… | A hidden row is out of the list until Show hidden; a locked row is shown but not editable, with a padlock and a badge. Read-only is a third thing, and not a setting — see Hidden, locked and read-only |
| List / List Type, again | A shared list the property points at, kept in the Tools tab under Material Library → Lists | Tables are |
| — (asked for later) | Input — asked for when the tool is placed | The old Prompt on Place, generalised to every property |
| — (asked for later) | Linked — what the row follows, after Add existing property… | |
| Formula, Result | fx, and the value the row shows |
Two settings were added to make these types work: the Slider range (Min, Max, Step) and the Percent style (percent or multiplier).
And the rule above all of them: every row in the table carries every setting, whether it came preloaded or you added it. means preloaded and undeletable, and nothing more.
How typed values are read
| Type | You can type | Notes |
|---|---|---|
| Number | 12, 1,250, 12.5, 1 1/2; with a unit: 16", 10' 6 1/2", 10', 1.5 ft, 300 mm, 120 sf; one leading $ is ignored ($12.50 is 12.50) | A bare number is in the property's unit: 10.5 in a feet property is 10.5', 16 in an inches property is 16". A number with a unit is converted into the property's unit when it is the same kind of unit; otherwise it is refused and says why: "16" is a length; Area is in square feet" |
| Percentage | 10%, 10, 12.5 %; 1.10 when its style is multiplier | A bare number is percent points: 10 is 10%, and 0.1 is 0.1%, not 10% |
| Slider | As a Number, or as a Percentage for a slider in %; or drag it | |
| Text | Anything | Kept as typed. With Only allow choosing from list: one of the list, any capitals, kept with the list's spelling; anything else is refused: "Pick one of the list" |
| Checkbox | yes / no, true / false, 1 / 0 | Usually you just click the box |
| Color | #RGB, #RRGGBB or RRGGBB | #3a7 is kept as #33AA77 |
How values are shown
- How it is spelled. The value is shown in the property's one unit, which is the unit it is stored in, so nothing is converted on the way. Show as feet and inches writes a length as feet and inches to the property's Fraction — 1/16" unless you set another, from 1/2" to 1/64" — (
142'-6",1'-4",9') and ignores decimal places. - Decimal places. The property's own, or System Settings → Numbers (2 unless you changed it):
375.00 SF,76.00,1,282.50 SF, with thousands separators. - Unit labels as a plan sheet writes them:
SF,CY,EA. A part's Qty and every count show no count unit.
- ERROR in big bright red when a formula is broken, with the reason on hover. It is the same word on every screen.
—for a measured value on a sheet with no scale. That is a missing scale, not a broken formula.- Percentage as
10.00%, or1.10as a multiplier. - A value shown grey is a default, not something set on this item or part. a part's Division, SubDivision, Construction Phase or Trade is grey when it came from the part above it or from the item, and hovering it says where from: "from Ext Wall 2x6". A value with an amber mark has a unit warning; the number still shows.
Decimal places are a setting of this computer, not of the job. A job-wide override is Coming.
Units per property
- A Number's unit carries its kind. DimSum knows lengths (
in,ft,yd,mm,cm,m), areas (sq in,sf,sy,sq= 100 sf,m²), volumes (cu in,cf,cy,m³), time (hr,min),%, and count labels (ea,sheet,box,roll,tube,bundle,pc). Any other unit (bag,pail) is a label — and you add your own to the list in System Settings → Units, where a custom unit converts to nothing but itself. - The default properties' units: an item's Linear, Perimeter and Height are in feet; its Thickness and Line Width in inches; its Area and Wall Area in square feet. A part's Length is in feet, its Width and Depth in inches, and its Qty in the unit set on that part — the box beside the number, reading
eaunless you change it. - A reference hands its number over in that property's one unit, and the arithmetic sorts out the rest: ft ÷ in = a plain count (
{Item > Linear} / {Item > O.C.}); ft × ft = sf; sf × in = cf. - Adding or comparing values of different kinds (feet + square feet) gives an amber warning, not an error. Each formula has an Ignore units switch.
- Details and examples: Formula language.
- Metric display is Coming: a job set to Metric in Project Settings still shows feet-inches.
List-linked properties (defaults from lists)
Coming. Instead of a pile of global settings, common values will come from lists with a default row at the top:| Situation | What happens |
|---|---|
| Property follows the default row | Walls place with the Waste % list's default, 10%. Change the default row to 12% and every property following the default uses 12% |
| Property linked to a specific row | The Roof tool is linked to the 25% row, so roofs always place with 25% |
| List edited | Add 15%, reorder rows, change the default: every property linked to those rows follows |
| Decoupled | The property is switched to a custom value for one tool or instance and no longer follows the list (a ◆ marker shows it) |
The same pattern is designed for plate heights, wall types and any rate you keep in a list. Resolution order when a value could come from several places: Shape override → Instance → Tool → list default row → Settings → Behind the scenes.
Values pulled from a list row will stay live-linked to the project's own copy of the list. When the library list moves on, the project's Refresh Center offers the update with a before/after view.
*Dropped — There is no Settings → Properties Toggle, no presets ("Quantities only", "Pricing Off") and no per-project override — no one switch hides a property everywhere.
What does exist is per property: an Input Condition hides one row by a rule, on the owners where the rule is false.
Audit properties
| Property | Status |
|---|---|
| Created By, Time Stamp, Modified By, Modified At on every item and part | — read-only, in the Audit group. Time Stamp is when it was created, shown as 2026-09-24 14:02 (UTC); {Created At} still reads it |
| Page, Level on items | — read-only, in the Location group. A part reads them as {Page > Name} and {Level > Name} |
| Location on the plan (bounding box / first point) | Coming |
| An audit trail of who changed what | Every edit is a journaled command (see Commands & undo); a readable trail view is Coming |
Naming rules
- Names are matched without regard to capitals (
{qty}={Qty}) and keep the capitals you typed for display. - A property name can't contain
{}>(the three characters a reference is made of), nor[]\/or:, and is up to 64 characters. DimSum refuses the name and says which character. - Names are unique on the item, part or job that holds them, and a property of your own can't take a default property's name.
- Renaming updates every formula and condition that uses it (above).
The default properties
the list, in groups. None of them can be deleted or renamed, and their settings are fixed.
On every takeoff item (Linear, Area and Point):
| Group | Property | Type | Unit | Notes |
|---|---|---|---|---|
| General | Name | Text | ||
| Description | Text | |||
| Type | Text, read-only | Linear, Area or Point | ||
| Measured (read-only) | Qty | Number | The item's main quantity; a part reads it as {Item > Qty} | |
| Linear | Number | ft | Also answers to {Linear Total}. On an Area, its perimeter | |
| Area | Number | sf | ||
| Perimeter | Number | ft | ||
| Segment Count | Number, 0 places | Also {Segments}. Edges across every shape; cutouts don't count | ||
| Point Count | Number, 0 places | Also {Count}. Placed points plus a typed count | ||
| Section Count | Number, 0 places | (below) | ||
| Wall Area | Number | sf | Linear items: {Linear} * {Height} | |
| Dimensions | Height | Number | ft | Wall Area uses it. Tick Show as feet and inches in its Settings… to read it 9'-6" |
| Thickness | Number | in | ||
| Appearance | Color | Color | What the item is drawn in | |
| Opacity | Slider, 0–100 % | The fill; the same value as the Fill slider added. 30% until you change it | ||
| Line Width | Number | in | The drawn width of the line, and the same number as {Width} on an item — one number under two names. Drawn on the canvas — a Linear item strokes at this width, in real inches, thickening and thinning with zoom | |
| Line Height | Number | in | Sits on the same row as Line Width, with a ⇋ between them: the same plate is 5½ from above and 1½ in section. (below) | |
| Line Drawn | Text, a list of its own: Line Width, Line Height (only from the list) | Which of the two the 2D canvas draws. The ⇋ sets it, and it lives on the item, exactly as Draw Side does. | ||
| Draw Side | Text, a list of its own: Right, Left, Centerline (only from the list) | Which side of the line the Line Width is drawn on, as you walk the line. (below). Taken from the tool, or from System Settings when the tool has none, at placement; the item keeps it | ||
| Classification | Division, SubDivision, Construction Phase, Trade | Text | As on parts: Division and Trade offer lists (Parts). the item's values are what its parts follow | |
| Location | Page, Level | Text, read-only | The home sheet and its level | |
| Audit | Created By, Time Stamp, Modified By, Modified At | Text, read-only |
Zero or blank keeps the hairline, so nothing you had drawn changes; Areas and Counts ignore it. The band snaps — every corner of it, its faces, and the square end at each end of the run, which is the rest of G.31. One thing the width still does not do: it is not filled from the parts' widths on its own — write SUM({Children > Width}) in its formula if you want that.
Gone from items: Report Section (Division and SubDivision cover it), Runs, and the separate Width — it is Line Width now, and {Width} on an item is a second name for that same number, not a copy of it.
On every part: the groups General (Name, Description, Type), Quantity, Cost (Cost Each, Markup %, Price Each, Tax Rate, Taxable), Product (Product Number, Manufacturer), Classification (Division, SubDivision, Construction Phase, Trade), Appearance (Color, Opacity), 3D (Length, Width, Depth, Used in render) and Audit.
On the job: Name, Job #, Customer — read-only here, changed in Project Settings' Job section.
The item's Name, Description, Colour, Opacity, Height, Thickness and Line Width, and a part's Name, take a formula — and so does Draw Side ** — and what it answers is what the canvas and every list show. A tool's Type is set when it is made. A part's unit is typed — it is the box beside the Qty, not a row of its own, and a unit is never worked out.
Line Width, Line Height and the swap
{Width}on an item is its Line Width. Not a copy kept in step, but the same number under two names — same row, same column — so there is no moment at which the two could disagree. A 2x6 laid flat draws 5½" wide, and nobody types it twice.- The two sit on one row. Line Width and Line Height, with a ⇋ between them in the Properties panel.
- The ⇋ chooses which of the two the 2D canvas draws, and the choice lives on the item, exactly as Draw Side does: a plate seen from above and the same plate seen in section are two items, not two tools. The property holding it is Line Drawn, in Appearance — a two-value list, Line Width or Line Height.
- The value not drawn is kept. Both numbers are always held, so a swap back gives you what you had.
- Swapping to a Line Height nobody typed draws a hairline, and says so rather than refusing. Painting 5½" and calling it a height is the one lie this must not tell.
- A part's material Width is a different question. A wall has plates, studs and sheathing — three widths — so whoever builds the tool writes
{Studs > Width}when that is what is meant.
Draw Side
- A preloaded property in Appearance, right after Line Width, on every tool and every placed item: Right, Left or Centerline. A Linear item's band is drawn wholly on the right of its line, wholly on the left, or centred on it.
- Right and left are as you walk the line, from the first click toward the next. Walking east, Right is below the line. A room traced clockwise with Right has its width inside; counter-clockwise, outside.
- Where the value comes from — three levels. A tool's own Draw Side, set in the Tool Designer, which wins; left blank (it reads —), the tool takes the system default at the moment it is placed. And the item, which keeps what it was placed with: changing the system default never moves anything already drawn, because a job must read the same on every machine.
- Old items stay centred. Moving every wall by half its width on upgrade would be a silent change to a drawing. Select them and set Draw Side if you want them on a side.
- Quantities do not move. Linear is the line you drew; Draw Side is where the width is drawn, not what is measured.
- A full property. Settings… (Group, Hint, Input, Hidden, Locked), a formula on the fx, and
{Draw Side}in any formula readsRight,LeftorCenterline. A typed value off the list is refused; a formula whose answer is off the list leaves the drawing where it was. OneCtrl+Zputs a change back. A copy (New item like this, Ungroup) keeps its source's side; Save as tool… does not carry it, the same as Height and Line Width, so a tool saved from an item follows the system default until you set it. - Areas and Counts show the row, and nothing draws it — the same as Line Width.
- Coming a per-shape side flipped with
Tabwhile drawing (the wall tools). - Flip one span while you draw — Hold
Ctrlwhile placing a span of a Linear with a Line Width and that span goes on the other side, Right ↔ Left (Other side (Ctrl) in the status bar). The span keeps its own side; the item's Draw Side is never written byCtrl, and spans already drawn don't move. It works when carrying on an item (N, Draw more points, Continue) too. A Draw Side that is Locked or set by a formula isn't flipped (Draw Side is set by the tool), and Centerline has no other side — Shared tool behavior → Ctrl draws on the other side. - (some sections flipped) — Once any span of an item is on the other side, the Draw Side row reads its value followed by (some sections flipped), here and in the item's Tool Settings. The value is still the item's, and
{Draw Side}in a formula reads it.
Section Count
- Linear: on each sheet, spans that share an end point join into one section. A section with two or more segments counts. A wall drawn as a chain of two spans is Section Count 1; a lone span on its own is 0.
- Area: each outline is one section. Cutouts don't count.
- Point: always 0.
Aliases: old names that still work
A few default properties were renamed for the list. Formulas written with the old names keep working; the Picker writes the new name.
| Old name | Now |
|---|---|
{Linear Total} | {Linear} |
{Count} | {Point Count} |
{Segments} | {Segment Count} |
{Created At} | {Time Stamp} |
Examples
| Where the formula lives | Formula | Result | Status |
|---|---|---|---|
| Part Subfloor Glue under Subfloor 3/4" T&G (Qty 43) | ROUNDUP({Parent > Qty} / 4, 0) | 11 tubes (11.00) | Works, |
| Part Drywall 4x8 on a 142' 6" wall, Height 9' | ROUNDUP({Item > Linear} * {Item > Height} / 32, 0) | 41 sheets | Works, |
Part Studs on a 100' wall, your own O.C. = 16 (Number, unit in) | ROUNDUP({Item > Linear} / {Item > O.C.}, 0) + 1 | 76 | Works, |
Your own Waste Area (unit sf) on an Area item (1,245 sf) with your own Waste % = 10 | {Area} * (1 + {Waste %}) | 1,369.50 SF | Works, |
Price Each on a part with Cost Each 4 and Markup % 25 | {Cost Each} * (1 + {Markup %}) | 5.00 — only because you wrote the formula | Works, |
| Your own Labor Cost (Number) on a part, job Labor Rate 65, Qty 12 hr | {Qty} * {Job > Labor Rate} | 780.00 | Works, |
| SubDivision on a part, item on the Main Level | {Level > Name} & " Walls" | Main Level Walls | Works, |
| Input Condition on your own Trim Color | {IS TRIM} | The row shows only while IS TRIM is ticked | Works, |
| Low-voltage J-Hooks part under a 180' cable run | ROUNDUP({Item > Linear} / 4, 0) | 45 | Works, |
| Same Waste % formula, Waste % linked to a list's 25% row, Area 2,100 sf | {Area} * (1 + {Waste %}) | 2,625 SF | List link: designed, not built — no build named |
| An item's Name, as a text template | 2x{Nominal Depth} @ {Stud Spacing}" O.C. in Text… | 2x6 @ 16" O.C. | Works, — numbers join without their units |
| Tool label | {Name}: {Linear} | Ext Wall 2x6: 142.5 | Text templates work; labels on the canvas are later |
| Stamp text | REVIEWED by {User > Initials} | REVIEWED by ZB | Coming ({User > …}), stamps later |
| Report header | {Job > Name} – {Job > Description} | Smith Residence – … | Text with placeholders in a report works; {Job > Description} is not a job built-in yet |
| Report filter | {Item > Created By} = "Jake" | Everything Jake placed | a report filter (report expressions) on a report that lists Items — an item's own properties are in the field list's Item group when a job is open |
| Floor assembly glue layer | ROUNDUP({Layer > Subfloor > Qty} / 4, 0) | tubes per sheet count | Coming |
Tips & shortcuts
- Use the Property Picker instead of typing paths; it always inserts the right reference.
- Give every number its Units when you add it (
infor a spacing,hrfor labor). It is a dropdown, so there is nothing to spell, and the formulas get simpler. - Tick Show as feet and inches on a length you read that way; leave a spacing you think of as "16" in inches.
- Add the units your yard sells in (
lift,pail) once, in System Settings → Units, and they are in every unit dropdown afterwards. - Put anything used across the whole job (labor rate, tax rate, markup) on the job, not on each part.
- Use an Input Condition to keep a long part short: trim-only fields show only on trim.
- Use
{Item > …}rather than long{Parent > Parent > …}chains inside deep part trees. - Right-click a Percentage → Settings… → Percent style multiplier to see it as
1.10if that's how you think about waste. - Keep anything with several standard choices in a list, not typed into each property.
- Put a property you want on every wall on the tool, not on each wall. The Tools tab is open with no job, so you can build it once before the next job starts.
Rules, limits & edge cases
- The default properties can't be deleted or renamed, and their settings can't be changed.
- A part has a Color and an Opacity too, but nothing draws a part
- A property's name is its reference, so names are unique (ignoring capitals) on whatever holds them.
- A property has one unit, and changing it in Settings… converts what is stored, so nothing on screen moves.
- A custom unit converts to nothing but itself. It is a label: it adds and compares against itself and nothing else.
- A Colour has no hex box anywhere. The wheel's own dialog takes an exact value, and a picked colour shows its hex under the swatch — readable, not typable.
- A number given both a Min and a Max is a slider, wherever a property is edited: the Properties panel, Tool Settings and Place….
- The List row is only drawn for a type that can have a list — Text, Number and the list-ish kinds. A Colour or a Yes/No binds to a table row from Set from a table… on the item instead.
{Width}and{Line Width}on an item are one number, and the ⇋ decides which of Line Width and Line Height the canvas draws. The one not drawn is kept.- The catalogue never changes a job: opening one defines only what that job has not got, the job's own definition wins inside it, and removing an entry from System Settings → Custom Properties touches no job.
- Only allow choosing from list refuses anything else, and keeps the list's spelling.
- An Input Condition never hides a value. A hidden row keeps its value and still counts; a broken condition shows the row.
- A reference that can't be found (
{Parent > Qty}on an item, a deleted sibling, a misspelt name) shows ERROR — "There is no property called "Hieght" on Ext Wall 2x6" — never a silent 0. - A part's unit is on the part, not on the property. It is the box beside the Qty, it takes no formula, and asking for it as Qty's unit in Settings… is refused, naming what to use instead.
- Un-hiding a preloaded property in a job is job-wide — one preloaded property is one row for the whole job, the same as every other setting on it. In the Tool Designer, hiding is per tool.
- Locked is honoured by the panel, not by the file. A locked row cannot be typed into in DimSum. It is a way of saying “do not change this here”, not a permission.
- Only four properties inherit: a part's Division, SubDivision, Construction Phase and Trade. Everything else on a part starts blank.
- There is no Round Up.
- A property that exists but is empty counts as 0, empty text or FALSE, as in Excel. So Cost Each, Markup % and the rest are 0 in a formula until you fill them.
- Audit and measured values are read-only: "Linear is measured from the drawing, so it can't be typed".
- Job built-ins (Name, Job #, Customer) are changed in Project Settings: "The job's Name is changed in Project Settings".
- Formulas can't reach outside the job (no other jobs, files or network).