Automated Floor Plan Digitization

AI-based Web Services API for Floor Plan Detection and Takeoff

Measure Square has developed a new approach to automate floor plan takeoff by using AI Deep Learning and Computer Vision algorithms to detect room areas, doors and windows.

The system has been implemented and available as web services API calls that can be integrated with many types of applications (see examples below).


Use Cases  Demo Site

From Manual to Automation

Architecture floorplans mostly exist in many forms such as PDF, CAD and image file formats or on paper. To digitize rooms and other elements in a floorplan, users need to manually import plans into takeoff software and and trace around the room corners to recreate rooms in digital form.

Now this process has been automated.

A world of floor plan digitization applications

Pre-construction Takeoff and Estimating

– Auto takeoff rooms, doors/windows, other projects for residential and commercial construction project estimating
– Automatic object detection and counts

AI detected rooms with size
AI sample floorplan

Renovation Project Layout and Budget Planning

– Digitize renovation project areas, SF/LF quantities for budget/bid planning.

Property floor plan area assessment

– Batch process property living areas for tax assessment
– Automate recreation of 3D space based on 2D plans

004_m2 takeoff

Jobsite production tracking

– Digitize jobsite plan into room areas where tasks can be assigned and tracked and reported individually

Smart Building Applications

– Digitize building model from existing plans and map IoTs devices on digitized 3D spaces

AI complete detected plan

Government Zoning Office Plan Scanning and Search

– Automatic scan and store plans, search for specific areas or objects for city zoning office automation

Floor Plan Detection Web Services API and Data Format Specs

API Specification Detail (click to open)



Request Url


Use HTTP Basic auth
We will provide a string format of user:pass
BASE64 encode the string
Supply an Authorization header with content Basic followed by the encoded string.
For example:

The string ‘user:pass’ encodes to ‘dXNlciUzQXBhc3M=’
So that we should add “Authorization: Basic dXNlciUzQXBhc3M=” to request header


  • pixellength: scale, represents the length in fact of each pixel (by millimeter)
  • file: floorplan file


  • Json object,include two field, rooms and doors
  • rooms: a list of room object, each room have two field (id and points)
  • doors: a list of door object, The structure is the same as rooms
  • points: a list of point object, each point have two integer field x,y

data example

                id: 1,
                points: [
                    { x:x1, y:y1}, { x:x2, y:y2}, ...
                id: 2,
                points: [
                    { x:x1, y:y1}, { x:x2, y:y2}, ...
                id: 1,
                points: [  { x:x1, y:y1}, { x:x2, y:y2} ]
                id: 2,
                points: [  { x:x1, y:y1}, { x:x2, y:y2} ]

Python example

data = {'PixelLength':4}
files = {'file': open(filepath, 'rb')}
response =, data=data, files=files, auth=HTTPBasicAuth('user', 'pass'))