Skip to main content
Trigger asynchronous feature extraction on a target (sheet, block, drawing, or file). Specify which features to extract and optional configuration. Returns a job_id for polling.

When to Use

  • Extract specific features from drawings (rooms, walls, symbols, dimensions, etc.)
  • Process a newly uploaded file into the Drawing Index
  • Re-extract features with different options (e.g., specific symbol exemplars)
  • The user asks to “parse”, “extract”, or “detect” features
Parse is an async operation that consumes credits. It may take seconds to minutes depending on scope. Use PollJob to poll for completion.

Parameters

ParameterTypeRequiredDescription
project_idstringyesProject ID
sheet_idstringconditionalParse a specific sheet
block_idstringconditionalParse a specific block
drawing_idstringconditionalParse an entire drawing
file_idstringconditionalParse an uploaded file (creates a new Drawing)
featuresstring[]yesFeatures to extract (see below)
optionsobjectnoFeature-specific configuration (see below)
Exactly one of sheet_id, block_id, drawing_id, or file_id is required.

Available Features

FeatureDescription
symbolsDetect and classify symbols (doors, windows, fixtures, etc.)
roomsDetect room boundaries and labels
wallsDetect wall segments and types
scaleExtract drawing scale
title_blockExtract title block information
dimensionsExtract dimension chains and values
mepDetect MEP systems (HVAC, plumbing, electrical, fire protection)
textExtract text regions (notes, schedules, specifications)
annotationsDetect annotations (clouds, callouts, redlines, keynotes)
legendExtract legend entries
scheduleExtract schedule tables
notesExtract general/key/sheet notes
gridDetect grid system lines and labels
cross_referencesDetect cross-reference callouts between views

Options

{
  "symbols": {
    "exemplars": [{ "label": "Fire Extinguisher", "description": "Wall-mounted FE symbol" }],
    "count": true,
    "legend": [{ "label": "Smoke Detector", "description": "Ceiling-mounted SD" }],
    "legend_block_id": "blk_legend_01"
  },
  "mep": {
    "systems": ["hvac_duct", "plumbing"],
    "measure": true
  },
  "dimensions": {
    "units": "imperial"
  },
  "annotations": {
    "types": ["cloud", "callout"]
  },
  "text": {
    "regions": ["notes", "schedules"]
  }
}
When using block_id with the symbols feature, options.symbols.legend_block_id is required to provide symbol definitions.

Response

{
  "job_id": "job_parse_01",
  "type": "parse",
  "status": "queued"
}
FieldTypeDescription
job_idstringUse with PollJob to poll status
typestringAlways "parse"
statusstringInitial status, always "queued"

Workflow

1

Trigger parsing

Call Parse with the target and features to extract. Note the returned job_id.
2

Poll for completion

Call PollJob with the job_id. The job progresses through queued > started > completed.
3

Explore results

Use Query with entity: "feature" to browse extracted features. Use entity: "block" or entity: "sheet" to see the updated structure.

Examples

Extract rooms and walls from a sheet

{
  "project_id": "prj_abc",
  "sheet_id": "sht_a101",
  "features": ["rooms", "walls"]
}

Detect symbols with exemplars

{
  "project_id": "prj_abc",
  "sheet_id": "sht_e201",
  "features": ["symbols"],
  "options": {
    "symbols": {
      "exemplars": [
        { "label": "Duplex Receptacle", "description": "Standard wall outlet" },
        { "label": "GFCI Receptacle", "description": "Ground fault outlet with T-shape" }
      ],
      "count": true
    }
  }
}

Parse a newly uploaded file

{
  "project_id": "prj_abc",
  "file_id": "projects/abc/files/arch-set-rev-c.pdf",
  "features": ["rooms", "walls", "symbols", "dimensions", "grid", "title_block"]
}
  • PollJob - Poll the parse job for status and results
  • Query - Browse extracted features, blocks, and sheets after parsing
  • ViewImage - View images of extracted features