Click Here For Measure Estimate Software Try It For Free

Measure Square Offices will be closed on Monday, May 27th for Memorial Day.

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).

Contact: ai@measuresquare.com

Use Cases        Demo Site

AI-based approach for automated floorplan takeoff

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 drawing software and to trace around the room corners to recreate rooms in digital form. This process is very tedious and time-consuming.

Measure Square has pioneered the approach to automate the takeoff by detecting the room boundary, door and window locations with pre-trained floor plan data sets. This feature has also been integrated into MeasureSquare Commercial takeoff estimating software.

Use cases of automatic floor plan digitization

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-650x350

Renovation Project Layout and Budget Planning

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

ai_sample_floorplan-650x350

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-650x350

Jobsite production tracking

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

jobtrakr-completion-report-512x350

Smart Building Applications

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

park-center-building-map-650x350

Government Zoning Office Plan Scanning and Search

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

ai_complete_detected_plan-650x350

Floor Plan Detection Web Services API and Data Format Specs

API Specification Detail (click to open)

Method

POST(HTTP)

Request Url

http://ai.measuresquare.com/api/file

Authentication

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

Parameters

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

Return:

  • 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

     {
        rooms:[
            {
                id: 1,
                points: [
                    { x:x1, y:y1}, { x:x2, y:y2}, ...
                ]
            },
            {
                id: 2,
                points: [
                    { x:x1, y:y1}, { x:x2, y:y2}, ...
                ]
            }
            ...
        ],
        doors:[
            {
                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 = requests.post(url, data=data, files=files, auth=HTTPBasicAuth('user', 'pass'))