Custom elements
Author and import your own fixture and furniture symbols as .kalarelement files, including with the built-in online element editor.
The fixture and furniture catalogue ships with a large default set, but you can grow it yourself. A custom item is a .kalarelement file, the same format as the built-in symbols, just with its own extension so it’s recognisable in Files, AirDrop and Mail. Drop one into the right place and it appears in the picker next to the built-ins.
.kalarelement file.The online element editor
The quickest way to make one is the online element editor, a free, browser-based tool (desktop only) that runs entirely on your machine; nothing is uploaded.
- Open an existing
.kalarelementor any bundled.jsonsymbol to start from. - Draw the top-down plan symbol on a live canvas with rectangles, lines, polylines, polygons, circles, ellipses, arcs and text, in the same outline / detail / hairline stroke styles the app uses.
- Edit on the canvas: click to select, drag the handles to reshape, and use the on-selection rotate and scale handles (hold Shift to snap rotation to 15° / scale to 0.1 steps). Press Delete to remove the selected shape, and ⌘Z / ⌘⇧Z to undo and redo.
- Work in real measurements: pick your unit (millimetres by default, or cm, m, or feet + inches) and every dimension is shown and entered at full size. The drawing stays true to scale, so what exports lands at exactly the right size in the app.
- Measure anything with the one-off tape tool: drag across the canvas for a live distance read-out. It’s a scratch measurement only; it’s never part of the symbol or the export.
- Fill a shape in its stroke-style colour (outline = black, detail = dark grey, hairline = light grey). The app draws symbols in these three shades, with no per-shape colour, so a filled shape paints solid in whichever style you chose.
- Fix issues: warnings are written in plain language; click one to jump to and highlight the shape it’s about (for example, a shape that extends beyond the item footprint).
- Export a ready-to-use
.kalarelementfile. If anything still has warnings, you’ll see a quick summary first and can export anyway.
Everything you make validates against the same contract the app loads, so what exports is what the app reads.
Two tiers: app-wide and per-project
Custom elements live on disk in two places:
- App-wide, available in every drawing. Files under
Documents/Elements/. - Per-project, available only to drawings inside one project. Files under
Documents/Projects/<project>/Elements/.
Each tier mirrors the built-in split into furniture/ and fixture/ sub-folders (the file itself records which class it is - that’s what decides which picker it joins, the folder is just a tidy hint). Under the app-wide root, base/ is your own growing catalogue; sibling folders are “packs” you can hand to someone else as a folder.
Documents/
├── Elements/ ← app-wide
│ ├── base/
│ │ ├── furniture/ *.kalarelement
│ │ └── fixture/ *.kalarelement
│ └── <pack-name>/ …
└── Projects/<project>/Elements/ ← per-project
├── furniture/ …
└── fixture/ …
Which one wins
When the same id exists in more than one tier:
- Built-in beats app-wide. A custom app-wide element can’t silently shadow a built-in
id, that would break drawings that already reference it. Give app-wide elements their own ids. - Project beats everything, but only inside that project. The same id resolves to the built-in or app-wide symbol everywhere else. That’s how a client pack can re-skin, say, a
sofafor one project without touching anything else.
Adding an element
From inside the app, open the Library tab, choose the Elements filter, and tap + to import a .kalarelement file. It lands in your app-wide library and shows up straight away. The same view lists every element you’ve added, grouped into an app-wide section and one section per project, and swiping a row deletes its file (built-in symbols aren’t listed and can’t be removed).
Via Files, AirDrop or Mail, drop a .kalarelement into one of the folders above. The catalogue refreshes automatically (changes deeper in the folder tree appear next time you return to the app).
To make an element project-specific, move its file into that project’s Elements/ folder with the Files app.
What an element captures
Each element records a few things:
- whether it’s a fixture or furniture - this decides which picker it appears in.
- an id, unique across fixtures and furniture, which is how placed drawings refer to it.
- a display name, plus an optional category, regions and search tags.
- the default footprint in metres (width × depth).
- the top-down symbol, drawn around the item’s centre so it rotates and scales cleanly.
- optionally a height and a 3D build recipe for the 3D engine (otherwise the item appears there as a simple box of the right size).
The online editor creates and edits all of this for you, no hand-editing required.