← projmgt.ai
Schema v1.0

ProjMgtAI Data Schema

Every extraction produces structured JSON output following this schema. Designed for machine readability, AI agent consumption, and integration into construction workflows.

View sample JSON →See full example →

Scope Object

Each extracted millwork item is a Scope Object. One object per item — cabinet sections, countertops, panels, hardware, and scope exclusions each get their own row.

idstring
Unique item identifier within the extraction
e.g. 001
roomstring
Room or assembly name as detected from drawings
e.g. Reception Desk
item_typeenum
Millwork category. One of: assembly, base_cabinet, upper_cabinet, tall_cabinet, countertop, transaction_top, decorative_panel, trim, channel, rubber_base, substrate, concealed_hinge, piano_hinge, grommet, adjustable_shelf, fixed_shelf, cpu_shelf, drawer, file_drawer, trash_drawer, rollout_basket, conduit, j_box, equipment_cutout, safe_cabinet, controls_cabinet, end_panel, corner_guard, trellis, ada_fascia, wall_cap, scope_exclusion
e.g. base_cabinet
descriptionstring
Plain text description of the item
e.g. Base Cabinet Section 18A
section_idstring
Drawing callout or section identifier
e.g. 18A
qtynumber
Quantity of this item
e.g. 4
unitenum
Unit of measure: EA, LF, SF, LOT
e.g. EA
dimensions.width_mmnumber
Face width in millimeters (run length along wall)
e.g. 1359
dimensions.depth_mmnumber
Front-to-back depth in millimeters
e.g. 610
dimensions.height_mmnumber
Vertical height in millimeters
e.g. 864
dimensions.dim_sourceenum
How dimensions were obtained: extracted (from drawing text), calculated (derived), unknown
e.g. extracted
material_codestring
Material code from project legend
e.g. PL-01
materialstring
Full material description
e.g. Plastic Laminate
sheet_refstring
Drawing sheet and detail reference
e.g. 1/A8.10
confidenceenum
Extraction confidence: high (type+dims+material), medium (missing one), low (missing two or more)
e.g. high
rulestring
Classification rule applied
e.g. RULE_cabinet_with_dims
{
  "id": "002",
  "room": "Reception Desk",
  "item_type": "base_cabinet",
  "description": "Base Cabinet Section 18A",
  "section_id": "18A",
  "qty": 1,
  "unit": "EA",
  "dimensions": {
    "width_mm": 1359,
    "depth_mm": 610,
    "height_mm": 864,
    "dim_source": "extracted"
  },
  "material_code": "PL-01",
  "material": "Plastic Laminate",
  "sheet_ref": "1/A8.10",
  "confidence": "high",
  "rule": "RULE_cabinet_with_dims"
}

RFI Object

Every scope gap, missing dimension, undefined material, or ambiguous exclusion generates an RFI Object. These are pre-bid RFIs — gaps caught before the job starts.

rfi_idstring
Sequential RFI identifier
e.g. RFI-001
priorityenum
High / Medium / Low / Info
e.g. High
categoryenum
Missing Scope / Scope Exclusion / Missing Dimensions / Missing Material / Sheet Reference / Extraction Note
e.g. Missing Scope
roomstring
Room or area where the gap was identified
e.g. Service Manager
descriptionstring
Plain text description of the gap and recommended action
e.g. Upper cabinets not found. Verify scope on interior elevation sheet.
sheet_refstring
Drawing reference where the gap was identified
e.g. A8.02
statusenum
Open / Resolved
e.g. Open
{
  "rfi_id": "RFI-002",
  "priority": "Medium",
  "category": "Missing Dimensions",
  "room": "Vanity Details",
  "description": "19 vanity sections without width dimensions. Section IDs: 101A, 101B, 101C...",
  "sheet_ref": "A8.06",
  "status": "Open"
}

Confidence Score

Every Scope Object carries a confidence score based on the evidence available at extraction time.

high
Item type + dimensions + material all present
medium
One of: type, dimensions, or material missing
low
Two or more of: type, dimensions, material missing

Item Type Reference

All valid item_type values in the ProjMgtAI schema.

assemblybase_cabinetupper_cabinettall_cabinetcountertoptransaction_topdecorative_paneltrimchannelrubber_basesubstrateconcealed_hingepiano_hingegrommetadjustable_shelffixed_shelfcpu_shelfdrawerfile_drawertrash_drawerrollout_basketconduitj_boxequipment_cutoutsafe_cabinetcontrols_cabinetend_panelcorner_guardcorner_detailstainless_panelhanger_supporttrellisada_fasciawall_capscope_exclusion

API Access

ProjMgtAI outputs are available as structured JSON. The sample output endpoint demonstrates the full schema with real extraction data.

GET https://projmgt.ai/api/sample-output

Full extraction API available for integration partners. Contact for access.

Try the extractor

Upload a millwork plan set and get structured JSON output following this schema in under 2 minutes.

Open Scope Extractor →