Import units in bulk
When a project has hundreds of apartments, adding them one by one isn't realistic. The units import creates or updates many units at once from a spreadsheet, always under one zone, always with a preview before anything is written.
Required role: Manager or Collaborator (the same permission as creating zones).
Prerequisites: the parent zone must already exist — for example the floor the units sit on. Create the buildings and floors first in the zone outline.
Add units or update units — pick first
Creating and updating are two separate actions with two different files:
- Add units — a headers-only template. It has no Reference column, because the units don't exist yet.
- Update units — the template comes pre-filled with every unit already under the zone, each with its Reference. Download it, change a few cells, upload it back.
There is no parent column and no hierarchy column in either file. The parent is the zone you pick before downloading, so a unit can never be moved by editing a cell. To re-parent zones, use move instead.
Add units
- Open the project's Zones area and select the zone the units belong to (usually a floor).
- Choose Add units and download the template. Pick CSV or Excel — same columns either way; the Excel file adds dropdowns and locks the key column.
- Fill in one row per unit:
- Name — required, for example
A-101. - Type — the zone type, for example Apartment.
- Code — your own external reference (optional).
- Name — required, for example
- Upload the file.
- Review the preview: how many rows will be created, and which rows are blocked and why.
- Confirm to commit.
Result: the units are created under the chosen zone, each with a generated Reference you'll use for future updates.
A single batch is limited to 5,000 rows. Split larger files by zone.
Blocked rows
By default a blocked row stops the whole commit — nothing is written until you fix the file. That's the safe default for a spreadsheet round-trip, where one bad row usually means the mapping is wrong rather than that one apartment is special.
If the blocked rows are genuinely expected, you can commit the rest anyway and deal with them separately.
Update units
- Select the same parent zone and choose Update units.
- Download the template — it already contains the zone's units with their Reference.
- Edit the cells you need. Leave Reference untouched: it's how Builddar matches a row to an existing unit.
- Upload the file and review the preview — rows are reported as updated, unchanged, skipped, or blocked.
- Confirm to commit.
Result: matching units are updated. Re-uploading last month's file changes nothing that you didn't edit — it reports the rest as unchanged rather than duplicating them.
This is the monthly path: download, edit three cells, upload, "3 updated, 37 unchanged".
Unit attributes
When unit lifecycle tracking is enabled for your organization, the template carries extra columns describing the property itself:
| Column | What it holds |
|---|---|
| Lot number | The lot reference used in sales documents. |
| Floor | Floor level as a number — a basement is -1. |
| Habitable area | Living area in m². |
| Carrez area | Carrez-law area in m². |
| Annex area | Balcony, terrace, cellar, and garden together, in m². |
| Typology | T1, T2, T3… from your organization's list. |
| Orientation | North, South, East, West… from your organization's list. |
| Electricity meter | Meter number. |
| Gas meter | Meter number. |
| Water meter | Meter number. |
Unit attributes and the lifecycle columns come with the unit lifecycle product. If you don't see them, it isn't enabled for your organization — see Products.
Undo an import
Every import is one batch. If a batch went in wrong, undo it as a unit rather than cleaning up row by row.
- Open the import result (or the zone's import history).
- Choose Undo on the batch.
Result: for an Add units batch, the created units are removed. For an Update units batch, the changed units go back to their values before the batch.
Undo never clobbers work done since the import. A field is restored only if its current value is still what the import wrote — so if someone edited that cell by hand afterwards, their edit survives the undo.
Undoing a batch twice does nothing the second time; it isn't an error.