AI Blueprint Analyzer: Floor Plan & Construction Data avatar

AI Blueprint Analyzer: Floor Plan & Construction Data

Pricing

from $130.00 / 1,000 blueprint analyzeds

Go to Apify Store
AI Blueprint Analyzer: Floor Plan & Construction Data

AI Blueprint Analyzer: Floor Plan & Construction Data

AI-powered architectural blueprint analyzer. Extract floor plans, rooms, dimensions, materials, walls, doors & structural elements from construction drawings. Built for architects, contractors, real estate pros. Batch up to 10 images. PDF & JPG. Structured JSON.

Pricing

from $130.00 / 1,000 blueprint analyzeds

Rating

0.0

(0)

Developer

daehwan kim

daehwan kim

Maintained by Community

Actor stats

0

Bookmarked

139

Total users

2

Monthly active users

6 days ago

Last modified

Share

Blueprint Intelligence Analyzer

AI-powered architectural blueprint analysis for automated document intelligence and construction data extraction.

Extract floor plans, structural elements, dimensions, rooms, materials, and annotations from architectural and engineering drawings using advanced AI vision.

Free plan (preview)Paid Apify plan (Starter and up)
Blueprints analyzed per run1 (the first URL)every URL you enter (maxImages, default 10)
Room / element / dimension rows1 row of each kind; the rest are counted (N of M shown)every row
What the rest would givea free-plan-preview row: images not analyzed, finding rows locked by kind, and an estimate (BRONZE prices) of a paid run of the same input—
Pricesame eventssame events, with plan discounts: BRONZE 20% off, SILVER 35% off, GOLD and up 48% off

A free run ends as SUCCEEDED with a status message that says what was left out. Run the same input again on a paid plan for everything.

This Actor is an independent, unofficial tool. It is not affiliated with, endorsed by, or sponsored by any CAD or BIM software vendor. It analyzes only images you supply a URL for; see the Legal Notice below for your responsibilities as the uploader.


Features

  • Document Classification: Automatically identify blueprint types (floor plans, structural, electrical, plumbing, HVAC, site plans, elevations, sections, details)
  • Room Detection: Extract room names, estimated areas, and dimensions from floor plans
  • Element Extraction: Identify architectural and structural elements (walls, doors, windows, stairs, columns, pipes, wires, fixtures)
  • Dimension Recognition: Automatically detect and extract measurements and scales
  • Text Annotation Parsing: Extract all text labels, notes, and annotations from drawings
  • Material Identification: Recognize and list materials mentioned in blueprints
  • Confidence Scoring: Get reliability metrics for each analysis
  • Batch Processing: Process up to 10 blueprints per run

Input

{
"imageUrl": "https://example.com/blueprint.jpg",
"imageUrls": [],
"analysisDepth": "standard",
"maxImages": 10
}

Parameters

ParameterTypeRequiredDescriptionDefault
imageUrlstringOptionalSingle blueprint image URLnull
imageUrlsarrayOptionalArray of blueprint URLs (max 10)[]
analysisDepthenumNoAnalysis level: quick, standard, detailed"standard"
maxImagesintegerNoMaximum images to process (1-10)10

Note: Provide at least one image via imageUrl or imageUrls. You can use both simultaneously; duplicates are automatically removed.


Output

Each blueprint analysis produces an overview record. While the finding rows below are on (the element-detected event is on the price list, as it is now), the overview carries the counts roomCount, elementCount and dimensionCount, and each room, element and dimension comes as its own finding row. Without the finding layer the overview carries the rooms, elements and dimensions lists shown here:

{
"imageUrl": "https://example.com/blueprint.jpg",
"status": "success",
"documentType": "floor_plan",
"drawingTitle": "Building A - Level 2",
"drawingScale": "1:100",
"rooms": [
{
"name": "Living Room",
"area_sqft": 250,
"dimensions": "20' x 12.5'"
}
],
"elements": [
{
"elementType": "door",
"count": 5,
"details": "Interior doors with swing direction"
}
],
"dimensions": [
{
"label": "Room Width",
"value": "20",
"unit": "feet"
}
],
"textAnnotations": [
"Property line",
"Setback: 25 ft"
],
"materials": [
"Concrete",
"Steel reinforcement"
],
"confidence": 0.92,
"model": "Qwen2.5-VL",
"processingTimeMs": 2500
}

Finding rows (additional layer, once priced)

For a successfully analyzed blueprint, this Actor also writes one extra row per detected room, architectural element or dimension (rowType: "finding"). This is on top of — not instead of — the overview row above, and only charges once the element-detected event below is on the live price list.

{ "rowType": "finding", "imageUrl": "https://example.com/blueprint.jpg",
"findingType": "room", "name": "Living Room", "area_sqft": 250, "dimensions": "20' x 12.5'" }

Output Fields

FieldTypeDescription
imageUrlstringOriginal blueprint image URL
statusstring"success" or "error"
documentTypestringBlueprint classification
drawingTitlestring | nullDrawing title if visible
drawingScalestring | nullDrawing scale (e.g., "1:100")
roomCount / elementCount / dimensionCountintegerHow many finding rows of each kind follow (finding layer on)
roomsarrayDetected rooms/spaces with area and dimensions (finding layer off)
elementsarrayArchitectural elements found (finding layer off)
dimensionsarrayMeasurements and scales detected (finding layer off)
textAnnotationsarrayText labels and annotations
materialsarrayMaterials mentioned in drawing
confidencenumberAnalysis confidence (0.0-1.0)
modelstringAI model name
processingTimeMsintegerProcessing time
errorstringError message (on failure)
codestringError code: INVALID_INPUT, INVALID_URL, IMAGE_UNREACHABLE, TIMEOUT, API_ERROR, PROCESSING_ERROR
errorSidestringOn error rows: target (the image host answered with an error — 401/403/404/410, or 429/503 twice — or the URL is not an image; IMAGE_UNREACHABLE) or service (our side)
reasonstringOn target rows: login-required, forbidden, not-found, gone, temporarily-unavailable, host-error, not-an-image or empty-body
httpStatusintegerOn target rows: the HTTP status the host answered (null when it was not an HTTP error)

Pricing

EventPrice (FREE tier list price)When it is charged
blueprint-analyzed$0.25once per analyzed blueprint (the overview row)
element-detected$0.01once per room, element or dimension finding row of an analyzed blueprint
blueprint-checked$0.02once per image URL our vision service could not download and whose host then refused the Actor too (HTTP error, not an image, empty body): code: "IMAGE_UNREACHABLE", errorSide: "target", reason, httpStatus. Charged only once this event is on the live price list

Who is behind a failed URL. When the URL's own host answers 401, 403, 404 or 410, the check is done and the answer is the host's: errorSide: "target" with reason (login-required, forbidden, not-found, gone) and httpStatus, charged as blueprint-checked. When it answers 429, 503 or another temporary code, the Actor waits briefly and asks once more; the same kind of answer again is the host's own state: reason: "temporarily-unavailable" with the HTTP code, charged the same way. Our side is never charged: our time limit, a host that never answered, our vision service's errors (errorSide: "service").

If the platform restarts a run, the new run life reads the run's own dataset and the platform's charge counts: rows already delivered are not delivered or charged again. An image whose overview row was already delivered is not analyzed again: if the restart cut it between its overview row and its finding rows, the missing finding rows are not made again (a second analysis may list the findings differently) and not charged, and one free partial-result row names them per kind (partial: true, missingLayers, inputIndex); the status says N of M complete, K partial. Every result row and the partial-result row carry inputIndex: the image's 0-based place in the list the Actor builds from your input — imageUrl, url, imageUrls, urls in that order, without values that do not start with http(s)://, without exact repeats of a URL (the first one keeps its place), cut at maxImages. The dataset's Overview view shows inputIndex, rowType, findingType, noticeCode, missingLayers and message, so a cut image is visible next to its rows. If the dataset cannot be read back, the run stops without processing or charging anything more.

Not charged: TIMEOUT, API_ERROR, PROCESSING_ERROR, EXCEPTION rows (errorSide: "service" — our side), INVALID_URL/INVALID_INPUT rows (rejected before any work), notice rows. Plan discounts: BRONZE 20%, SILVER 35%, GOLD and up 48%.

The run stops when its maximum charge is reached: no further row is delivered, a charge-limit-reached notice row says how many images were not processed, and the run ends as SUCCEEDED. If our vision service fails 3 images in a row, the run stops with a free service-unavailable notice row.


Examples

Single Blueprint Analysis

curl -X POST https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://upload.wikimedia.org/wikipedia/commons/c/cd/Cleveland_Union_Terminal_floor_plan.jpg"
}'

Batch Processing Multiple Blueprints

curl -X POST https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"imageUrls": [
"https://upload.wikimedia.org/wikipedia/commons/c/cd/Cleveland_Union_Terminal_floor_plan.jpg",
"https://upload.wikimedia.org/wikipedia/commons/8/85/EER_Arena_Floor_Plan.png"
],
"analysisDepth": "detailed",
"maxImages": 10
}'

Using the JavaScript SDK

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_ACTOR_ID').call({
imageUrl: 'https://example.com/blueprint.jpg',
analysisDepth: 'standard',
});
const results = await client.dataset(run.defaultDatasetId).listItems();
console.log(results.items);

Use Cases

  1. Construction Project Management: Automatically catalog and extract data from project blueprints
  2. Real Estate Analysis: Extract room counts, dimensions, and property layouts
  3. Building Information Modeling (BIM): Feed extracted data into BIM systems
  4. Compliance Verification: Extract regulatory markings and construction notes
  5. Cost Estimation: Get detailed element counts and dimensions for material quotes
  6. Property Valuation: Analyze building layouts and room dimensions
  7. Renovation Planning: Extract existing structural elements for renovation designs
  8. Facility Management: Index and retrieve building information from drawings

Supported Blueprint Types

  • Floor Plans — Residential, commercial, industrial building layouts
  • Structural Drawings — Load-bearing walls, columns, beams, foundations
  • Electrical Plans — Power distribution, outlet locations, circuit layouts
  • Plumbing Diagrams — Water lines, fixtures, drainage systems
  • HVAC Schematics — Ductwork, equipment, air handling systems
  • Site Plans — Property boundaries, landscaping, access points
  • Elevations — Building facades and exterior views
  • Cross-Sections — Internal building profiles and details
  • Detail Drawings — Construction connection and assembly details
  • Other Diagrams — Any architectural or engineering drawings

Limitations & Accuracy

  • Image Quality: Analysis accuracy depends on blueprint image resolution and clarity
  • Hand-Drawn Drawings: Legibility may vary for hand-sketched or aged prints
  • Complex Symbols: Non-standard or custom symbols may not be recognized
  • Text Extraction: Small or stylized text may be missed
  • Dimension Accuracy: Extracted dimensions should be verified against original documents
  • Dense Drawings: Very complex drawings with many elements may have reduced accuracy

Confidence Scores: Use the confidence field (0.0-1.0) to gauge analysis reliability. Scores below 0.7 indicate less certain results.


AI Model

  • Model: Qwen2.5-VL (7B parameters)
  • Processing: Local AI server (no cloud storage of blueprints)
  • Response Time: 2-10 seconds per image (typical)

  • Architectural blueprints and engineering drawings are protected by copyright law (U.S. Architectural Works Copyright Protection Act, 1990).
  • You may ONLY upload blueprints that you: (a) Own or created yourself (b) Have explicit written permission from the copyright holder to analyze (c) Are licensed to use for this purpose
  • Uploading third-party blueprints without authorization may constitute copyright infringement.
  • We assume no liability for unauthorized use of copyrighted architectural works.

Confidential & Trade Secret Documents

  • Do NOT upload blueprints marked as "Confidential," "Proprietary," or "Trade Secret."
  • Unauthorized analysis of confidential blueprints may violate trade secret laws and result in significant legal liability for the user.
  • We do not verify the confidentiality status of uploaded documents.

Not an Engineering Tool

  • This tool provides AI-assisted analysis for INFORMATIONAL PURPOSES ONLY.
  • Results are NOT a substitute for professional architectural or structural engineering review.
  • Do NOT use extracted dimensions, measurements, or structural data for construction, renovation, or engineering decisions without professional verification.
  • Errors in AI-extracted measurements could lead to structural failures, safety hazards, or code violations.

Liability

  • The developer assumes no liability for errors, omissions, or decisions based on this tool's output.
  • Users must verify all extracted data with qualified architects, engineers, or licensed contractors.
  • This tool does not provide structural analysis, load calculations, building code compliance, or safety certifications.

Data Processing

  • Blueprint images are processed on our local AI server and immediately discarded.
  • We do not retain, share, or use uploaded blueprints for any purpose beyond the requested analysis.
  • For confidential projects, consider using our service only with proper authorization from all stakeholders.

Error Handling

Error CodeCauseResolution
INVALID_INPUTURL is null or not a stringProvide valid imageUrl or imageUrls
INVALID_URLURL format is invalidEnsure URL starts with http:// or https://
TIMEOUTAI service took too long (>180 s, or the time the run had left)Try again or use lower analysisDepth
API_ERRORAI service returned errorCheck image accessibility and try again
PROCESSING_ERRORUnexpected error during analysisCheck logs; image may not be a blueprint

Support & Feedback

For issues, suggestions, or feature requests, contact the development team through Apify.


Changelog

v1.0.0 (Initial Release)

  • ✅ Blueprint document type classification
  • ✅ Room and space detection
  • ✅ Architectural element extraction
  • ✅ Dimension and measurement recognition
  • ✅ Text annotation parsing
  • ✅ Material identification
  • ✅ Batch processing (up to 10 images)
  • ✅ Confidence scoring
  • ✅ PPE pricing model ($0.25/analysis)

Build your data pipeline with the ntriqpro Actor suite:

⭐ Love it? Leave a Review

Your rating helps other construction and real estate professionals discover this actor. Rate it here.


Last Updated: 2026-04-19 AI Model: Qwen2.5-VL v7B Processing Server: ai.ntriq.co.kr