> ## Documentation Index
> Fetch the complete documentation index at: https://docs.harbinge.rs/llms.txt
> Use this file to discover all available pages before exploring further.

# Floor Plan Processing (Floorline)

> How an uploaded floor plan becomes an interactive map, what render mode means, and how to set a plan's real-world scale

Floorline is the part of Forager that turns an uploaded floor plan file into the interactive, zoomable map field techs and dashboard users see. It runs automatically — there is no separate "process this floor plan" button. You upload a file, and within moments Forager decides how best to render it.

## Uploading a floor plan

From **Select Floor** in the Android app, open the overflow menu (⋮) on a floor's row and choose **Upload Floor Plan** (or **Replace floor plan**, if one is already attached). Pick a file from your device.

<Note>
  A floor plan can also be uploaded from the web dashboard — see [Floor Plan → Zone Map](/dashboard/floor-plan).
</Note>

Forager accepts JPEG, PNG, and PDF. JPEG or PNG is the simplest choice — a clear photo of a printed plan works fine. **PDF is worth using when you have one**: it's the only format Floorline can automatically vectorize into a sharp, interactive map (see render modes below) — a JPEG or PNG upload always stays in **Bitmap** mode.

<Note>
  Only the first page of a PDF is used. If your floor plan is a multi-page PDF (one page per floor, for example), split it and upload each floor's page as a separate file.
</Note>

## Render modes

Every floor plan is shown to users in one of three render modes. You don't choose the mode directly — Forager picks it based on what kind of file you uploaded and what Floorline finds in it.

| Render mode | What it looks like                                                                                          | When it's used                                                                                                               |
| ----------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **Vector**  | An interactive map with individual walls and rooms, drawn as clean shapes that stay sharp at any zoom level | A scanned or raster PDF (a flattened image with no underlying CAD line data) — Floorline detected walls and rooms in it      |
| **SVG**     | A crisp line-art rendering of the original drawing                                                          | A vector-rich PDF exported directly from CAD software, which already contains real line/path data — no wall detection needed |
| **Bitmap**  | The floor plan image, shown as-is                                                                           | JPEG or PNG uploads, or a PDF where the above two paths didn't apply                                                         |

<Tip>
  You don't need to know or track which mode a given floor is in. The map behaves the same way in every mode — pins, zoom, and pan all work identically. Render mode only affects how sharp the underlying drawing looks, especially at high zoom.
</Tip>

## What happens after you upload a PDF

<Steps>
  <Step title="Forager checks whether the PDF is vector-rich">
    If the PDF was exported straight from CAD software (AutoCAD, Revit, etc.), it already contains real line and path data. Forager extracts and cleans that data directly — this is fast (a few seconds) and produces the **SVG** render mode.
  </Step>

  <Step title="If not, it's a raster PDF — Floorline vectorizes it">
    A raster PDF (typically a scanned drawing, or a PDF exported as a flattened image) has no usable line data — it's just a picture. Floorline rasterizes the page, detects wall and room boundaries in the image, and builds a clean vector map from what it finds. This runs in the background and typically finishes within seconds to a couple of minutes depending on the drawing's complexity.
  </Step>

  <Step title="The floor shows a bitmap immediately, then upgrades automatically">
    You don't have to wait. The floor plan is usable right away in **Bitmap** mode. Once Floorline finishes, the same floor automatically switches to **Vector** mode the next time it's opened — no action needed, and nothing else about the floor (existing pins, zone assignments) changes.
  </Step>
</Steps>

<Warning>
  Floorline's wall and room detection is tuned for architectural line drawings — floor plans, fire/life-safety plans, and similar CAD-style sheets. Photos of physical spaces or heavily annotated/marked-up scans may not vectorize well and will stay in **Bitmap** mode. This isn't an error; the floor plan is still fully usable, just without the sharper vector rendering.
</Warning>

## Setting the scale

By default, a floor plan has no real-world scale — distances on it are just pixels. Setting a scale unlocks real-world distance readouts elsewhere in the app for that floor — for example, [Device Hunt](/field-tech/device-hunt) shows an approximate distance in meters from your current position to the device you're searching for, once the floor has a saved scale. For [Connected Tier](/dashboard/connected-tier) accounts, the same saved scale also drives distance-based AP fingerprint seeding — no separate calibration is needed there.

<Steps>
  <Step title="Open Set Scale">
    On the **Select Floor** screen, open the overflow menu on the floor's row and tap **Set scale**.
  </Step>

  <Step title="Drag the two handles onto a known distance">
    Position the two handles on the floor plan over two points whose real-world distance you know — the width of a standard door, the length of a marked corridor section, or a dimension called out on the drawing itself.
  </Step>

  <Step title="Enter the reference length">
    Type the real-world distance between those two points, in meters or feet. A live preview shows the resulting scale and the floor's estimated overall dimensions as you type.
  </Step>

  <Step title="Save Scale">
    Tap **Save Scale**. The floor's scale is stored immediately and applies the next time anyone opens that floor plan.
  </Step>
</Steps>

<Note>
  Replacing a floor plan with a genuinely different image (different pixel dimensions) clears its saved scale automatically, since the old reference points no longer correspond to the new drawing. If you set the scale, then later recalibrate or trigger a re-vectorization of the *same* underlying image, the scale is preserved. Set the scale again after uploading a truly new floor plan file.
</Note>

## Related

<Card title="Floor Plan View" icon="map" href="/dashboard/floor-plan">
  Reading pins and asset details on the dashboard floor plan view.
</Card>

<Card title="Floor Plan Issues" icon="triangle-exclamation" href="/troubleshooting/floor-plan">
  Troubleshooting upload, display, and alignment problems.
</Card>
