Technical Explainer
How AI Extracts Floor Plans and Legends from Large Bid Sets
AI extracts floor plans and legends from architectural documents through a five-step pipeline: it ingests the PDF bid set, isolates the pages that actually contain floor plans, detects the drawing's scale and reads the finish legend using OCR, crops out irrelevant plan clutter, then uses computer vision to segment each room and match it to a material from the legend.
The five-step pipeline
Ingestion
The system accepts PDF and image file uploads, from a single-page flyer to a 500+ page commercial set, up to 500MB. Files that originated in CAD software (Revit, AutoCAD, ArchiCAD, etc.) tend to produce cleaner, high-quality vector PDFs — with selectable text and sharp lines — which the system reads with the most precision. If the source is a scanned (raster) plan instead, an OCR engine handles it, though results on scans typically need more manual verification.
Page selection
A large commercial set often has hundreds of pages that have nothing to do with flooring — structural details, elevations, electrical plans, reflected ceiling plans. Rather than process the whole document, you're shown a thumbnail grid and pick the actual floor plan pages (e.g., "A101 First Floor," "A102 Second Floor"). One thing to watch for: reflected ceiling plans mirror the floor geometry and can look like a floor plan at a glance, so they shouldn't be selected unless you're actually estimating ceiling materials.
Scale and legend extraction
This is the step where the system establishes what the drawing actually means. For scale, it scans the page for a graphical scale bar or a text callout like 1/8" = 1'-0" and calculates a pixel-to-foot ratio; if the sheet is marked "N.T.S." (not to scale), it gets flagged for manual calibration instead of guessing. For the legend, it locates the finish schedule table and uses OCR to read the symbol, description, and manufacturer columns, building a material map for that page — for example, CPT-1 = Carpet Tile, RB-1 = Rubber Base. If the legend is handwritten or too blurry to read reliably, you can switch to manual entry and type the codes in yourself.
Cropping
Architectural sheets are cluttered with title blocks, general notes, revision clouds, and key plans — none of which are part of the actual floor area. A bounding box lets you crop the sheet down to just the rooms you're estimating. This isn't just tidiness: leaving that clutter in gives the segmentation step false positives (a rectangle in a title block can get read as a "room"), and cropping it out is documented to speed up processing by around 40%.
Segmentation
With a cropped, scale-calibrated plan and a parsed legend, the system analyzes the drawing's geometry to identify enclosed, room-like regions and overlays them as colored polygons. This step is explicitly human-in-the-loop: you click a room, assign it a material from the legend, and it recolors to match. If the system missed a small closet or merged two rooms together, there are draw, split, and merge tools to fix the geometry by hand.
Solid mode vs. boundary mode
Once rooms are segmented, you can view and edit them in one of two modes.
Solid mode treats each room as a completely filled shape — area is calculated from the pixels inside the boundary, and the room shows up as a solid block of color. It's the more intuitive mode for simple, clearly-walled spaces like bedrooms or offices, and it's useful for a quick visual QA pass: an unfilled gap in the middle of a colored room (an "island") is an obvious sign of a coverage gap.
Boundary mode instead traces the perimeter — the room is defined by its outline, shown as a thin colored line with a transparent center. This is the better choice for open-plan spaces like lobbies, where "rooms" blend into hallways without hard walls, and for transition planning, since you can see exactly where one material's boundary meets another (e.g., where carpet meets tile). Because the underlying plan stays visible through the transparent fill, you can also still read text labels, furniture layouts, or electrical symbols underneath. Boundary mode also supports vertex snapping, so you can drag a corner point to snap precisely to a column or door jamb for sub-inch accuracy.
Which mode to use depends on the plan: solid mode for straightforward, cleanly walled rooms and fast visual checks; boundary mode for complex or open layouts and precise edge work.
Solidification: handling messy or scanned plans
Not every plan arrives clean. A scanned PDF often has lines that are gray, faint, or broken instead of solid black — and a standard computer-vision algorithm reads a broken line as a gap, treats the room as open to the outside, and fails to close the shape.
Solidification is a pre-processing pass that runs before segmentation to correct for this. It does three things: pushes gray or faint lines to true black (contrast enhancement), bridges small gaps in wall lines that are invisible to the eye but break a segmentation algorithm (gap bridging), and removes scan speckling and artifacts (denoising). The practical effect is that you don't need a pristine CAD file to get a usable auto-segmentation — a scan of a wrinkled or faded blueprint can still recover enough geometric integrity to detect rooms automatically, instead of requiring you to trace the whole plan by hand.
Intelligent room naming
While segmenting a room, the system also scans the text inside that shape and tries to name the room automatically. If it finds a label like "OFFICE 102" inside the polygon, it assigns that name to the room in the exported data.
Rooms often contain more than one piece of text — a room name, a ceiling height note, a finish tag — so the system applies a context filter to prioritize whatever text semantically looks like a room name over things like height markers or finish codes. The practical benefit is mainly time: on a project with hundreds of rooms, this pre-populates most of the names for you, and you're left reviewing and correcting the ones it got wrong rather than typing every label from scratch.