Skip to content

Buildings and Floors

c0dewhacker edited this page Apr 22, 2026 · 2 revisions

Buildings and Floors

Buildings group floors, floors hold zones, and zones hold bookable assets (desks, rooms, phone booths, etc.). A fresh Roomer install has no buildings — this page walks through creating the first one.

All of this requires a SUPER_ADMIN account to perform (creating, editing, deleting). Floor managers can upload plans and edit the plan they manage — see Users Groups and Permissions.

1. Create a building

  1. Sidebar → Admin → Buildings.
  2. Click Add Building (top-right).
  3. Fill in:
    • Name (required) — e.g. HQ, Sydney Office.
    • Address (optional) — free-text. Shown in the building detail page.
  4. Save. You'll land on the building detail page.

Each building belongs to the single organisation record (Roomer is single-tenant per install). Deleting a building cascades to all its floors, zones, assets, bookings, queues, leases and access rules — the confirmation dialog spells this out.

2. Add a floor

From the building detail page:

  1. Click Add Floor.
  2. Fill in:
    • Name (required) — e.g. Ground, Level 5, Rooftop.
    • Level (integer, default 0) — used only for ordering; lower levels sort first in the sidebar and on the building page.
  3. Save.

The new floor appears in the Floors list. Click its name or "Manage" to open the floor editor.

3. Upload a floor plan

Each floor has a single floor plan file. Supported formats:

Format Detected by Notes
PNG image/png Served as-is
JPG / JPEG image/jpeg Served as-is
WebP image/webp Served as-is
GIF image/gif Served as-is
PDF application/pdf Rasterised to an image by the web UI when rendering the canvas
DXF image/vnd.dxf, application/dxf, application/octet-stream + .dxf filename Converted to a rendered image on upload

Max upload size defaults to 20 MB (API env MAX_FILE_SIZE_MB) and nginx allows up to 25 MB (client_max_body_size in the web container).

To upload:

  1. Open the floor editor (Admin → Buildings → your building → your floor).
  2. Click Upload Floor Plan (top-right of the plan area, or inside the empty-state placeholder).
  3. Pick your file.

Replacing a plan deletes the previous original/rendered/thumbnail files. The canvas re-draws with the new image and any existing asset positions are preserved.

Scaling the plan

Some PDFs and DXF files render at a resolution that doesn't match the scale you want on the canvas. The floor record has a displayScale value (0.1 – 10.0). Use the zoom controls in the floor editor to adjust it; it's persisted via PATCH /floors/:id/floor-plan/transform.

4. Bulk-assign users to assets

Once assets are on a floor, assign them to users without opening each asset individually. On the building detail page:

  • Bulk assign users (button in the page header) — opens a CSV upload dialog. Download a pre-populated CSV of the building's assets with current assignments, fill in or update the USER_EMAIL column, and re-upload. See Zones and Assets#bulk-assigning-users-to-assets for the full format.

  • Clear floor assignments (user-minus icon on each floor card) — removes every permanent user assignment from every asset on that floor in one action, resetting their booking status to OPEN. Requires confirmation.

5. What's next

With a floor in place you normally:

  • Create zones (or a single zone) to colour-group the desks. See Zones and Assets.
  • Add bookable assets and place them on the plan — one by one, via the per-floor CSV bulk import (on the floor editor), or via the global bulk importer (see Bulk CSV Import).
  • (Optional) Restrict who can see this building or floor via Users Groups and Permissions.
  • (Optional) Assign a Floor Manager so a non-admin can manage its zones/assets — again, see Users Groups and Permissions.

Access restrictions (recap)

Buildings can be made private by linking them to one or more access groups:

  • Open building (default, zero group rules) — all authenticated users see it.
  • Restricted building (≥ 1 group rule) — only members of the linked groups see it; SUPER_ADMINs always see every building.

Open/restrict the building from Admin → Buildings → your building → Access Groups tab. See Users Groups and Permissions for the full story on access rules.

Clone this wiki locally