Cross-discipline design-contradiction checker for construction drawing sets. Standalone tool broken out from Iron_Bid; a pipeline stage may later fold back into Iron_Bid. Pipeline: PDF->images -> per-sheet assertion extraction -> deterministic clustering by location -> per-cluster reasoning -> report. Includes CLI (cli/run_check.py) and web UI (backend/main.py). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 line
24 KiB
JSON
1 line
24 KiB
JSON
[{"assertion_id": "E01.02#9", "attribute": "mounting_height_AFF", "value": "5'-5\"", "source_text": "TYPE: L-6, DESCRIPTION: 16\" PENDANT, MOUNTING: PENDANT, NOTES: PENDANT 5'-5\" AFF", "normalized_value": "65", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E01.02#10", "attribute": "schedule_entry", "value": "Type X is a LED exit sign with Nickel Cadmium battery and self diagnostics.", "source_text": "TYPE: X, DESCRIPTION: LED EXIT SIGN WITH NICKEL CADMIUM BATTERY AND SELF DIAGNOSTICS", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E01.02#11", "attribute": "note", "value": "Emergency egress operation in fixtures shall provide minimum 400 lumens for minimum 90 minutes.", "source_text": "1. EMERGENCY EGRESS OPERATION IN FIXTURES SHALL PROVIDE MINIMUM 400 LUMENS FOR MINIMUM 90 MINUTES", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Note contains multiple performance requirements.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E01.02#12", "attribute": "connected_load", "value": "5", "source_text": "DESCRIPTION: WATER HEATING, CONNECTED (KVA): 5, DEMAND (KVA): 5", "normalized_value": "5", "normalized_unit": "KVA", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E01.02#13", "attribute": "connected_load", "value": "21", "source_text": "DESCRIPTION: HVAC HEATING *, CONNECTED (KVA): 21, DEMAND (KVA): 21", "normalized_value": "21", "normalized_unit": "KVA", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E01.02#14", "attribute": "connected_load", "value": "<17", "source_text": "DESCRIPTION: HVAC COOLING *, CONNECTED (KVA): <17, DEMAND (KVA): <17", "normalized_value": "<17", "normalized_unit": "KVA", "normalized_attribute": null, "normalization_notes": "Operator preserved from original value.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E01.02#15", "attribute": "service_size", "value": "100", "source_text": "RECOMMENDED SERVICE SIZE AT 480V 3P 4W = 100 AMPS", "normalized_value": "100", "normalized_unit": "AMPS", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E01.02#16", "attribute": "equipment_location", "value": "LOUNGE", "source_text": "PANEL NAME H, LOCATION LOUNGE", "normalized_value": "LOUNGE", "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "Value represents a room name.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E01.02#17", "attribute": "mounting", "value": "SURFACE", "source_text": "MOUNTING SURFACE", "normalized_value": "SURFACE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E01.02#18", "attribute": "equipment_location", "value": "LOUNGE", "source_text": "PANEL NAME L, LOCATION LOUNGE", "normalized_value": "LOUNGE", "normalized_unit": null, "normalized_attribute": "room_name", "normalization_notes": "Value represents a room name.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#0", "attribute": "general_note", "value": "Coordinate final receptacle/data locations with architect/owner prior to rough-in.", "source_text": "1. COORDINATE FINAL RECEPTACLE/DATA LOCATIONS WITH ARCHITECT/OWNER PRIOR TO ROUGH-IN.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#1", "attribute": "general_note", "value": "Coordinate final floorbox locations with architect/owner prior to rough-in.", "source_text": "2. COORDINATE FINAL FLOORBOX LOCATIONS WITH ARCHITECT/OWNER PRIOR TO ROUGH-IN.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#2", "attribute": "general_note", "value": "Refer to architectural drawings for dimensional locations of all outlets.", "source_text": "3. REFER TO ARCHITECTURAL DRAWINGS FOR DIMENSIONAL LOCATIONS OF ALL OUTLETS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#3", "attribute": "keynote_assertion", "value": "Provide combination (power/data) Hubbell Systemone fully recessed floorbox #CFB4G25 with flush round cover (finish approved by architect).", "source_text": "1 PROVIDE COMBINATION (POWER/DATA) HUBBELL SYSTEMONE FULLY RECESSED FLOORBOX #CFB4G25 WITH FLUSH ROUND COVER (FINISH APPROVED BY ARCHITECT). PROVIDE WITH (1) DUPLEX RECEPTACLE. COORDINATE CONCRETE DEPTH REQUIREMENTS WITH G.C. COORDINATE FLOOR BOX ACCESSORIES WITH OWNER.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#4", "attribute": "keynote_assertion", "value": "Provide (power) Hubbell Systemone fully recessed floorbox #PFBI with flush round cover (finish approved by architect).", "source_text": "2 PROVIDE (POWER) HUBBELL SYSTEMONE FULLY RECESSED FLOORBOX #PFBI WITH FLUSH ROUND COVER (FINISH APPROVED BY ARCHITECT). PROVIDE WITH (1) DUPLEX RECEPTACLE. COORDINATE CONCRETE DEPTH REQUIREMENTS WITH G.C. COORDINATE FLOOR BOX ACCESSORIES WITH OWNER.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#5", "attribute": "penetration", "value": "1-1/4\"C with pullstring for data to ceiling space above rack system in inventory room.", "source_text": "3 PROVIDE 1-1/4\"C WITH PULLSTRING FOR DATA TO CEILING SPACE ABOVE RACK SYSTEM IN INVENTORY ROOM VIA NEAREST FULL HEIGHT INTERIOR WALL.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive phrase containing size and other information which cannot be separated.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#6", "attribute": "keynote_assertion", "value": "Provide power for building sign. Coordinate final location and mounting height prior to rough-in.", "source_text": "4 PROVIDE POWER FOR BUILDING SIGN. COORDINATE FINAL LOCATION AND MOUNTING HEIGHT PRIOR TO ROUGH-IN.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#7", "attribute": "keynote_assertion", "value": "Furnish and install #10 Cu ground with ground lug for connection to network racks.", "source_text": "5 FURNISH AND INSTALL #10 Cu GROUND WITH GROUND LUG FOR CONNECTION TO NETWORK RACKS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#8", "attribute": "penetration", "value": "(3) 3\" conduit sleeves from 6\" below dropped ceiling to 6\" above dropped ceiling.", "source_text": "6 FURNISH AND INSTALL (3) 3\" CONDUIT SLEEVES FROM 6\" BELOW DROPPED CEILING TO 6\" ABOVE DROPPED CEILING FOR DATA EQUIPMENT WIRING.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive phrase containing quantity, size and location information which cannot be separated.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.01#9", "attribute": "keynote_assertion", "value": "Transformer to be suspended from structure at high level above accessible ceiling.", "source_text": "7 TRANSFORMER TO BE SUSPENDED FROM STRUCTURE AT HIGH LEVEL ABOVE ACCESSIBLE CEILING.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E02.02#0", "attribute": "scale", "value": "1/4\" = 1'-0\"", "source_text": "SCALE: 1/4\" = 1'-0\"", "normalized_value": "1:48", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#0", "attribute": "scale", "value": "1/4\" = 1'-0\"", "source_text": "SCALE: 1/4\" = 1'-0\"", "normalized_value": "1:48", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#1", "attribute": "general_note", "value": "Coordinate all light switch locations with architect/owner prior to rough-in.", "source_text": "ELECTRICAL GENERAL NOTES: 1. COORDINATE ALL LIGHT SWITCH LOCATIONS WITH ARCHITECT/OWNER PRIOR TO ROUGH-IN.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#2", "attribute": "general_note", "value": "Connect all type 'X' emergency fixtures to nearest lighting circuit via non-switched hot leg. Provide fixtures with nickel cadmium battery.", "source_text": "ELECTRICAL GENERAL NOTES: 2. CONNECT ALL TYPE 'X' EMERGENCY FIXTURES TO NEAREST LIGHTING CIRCUIT VIA NON-SWITCHED HOT LEG. PROVIDE FIXTURES WITH NICKEL CADMIUM BATTERY.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#3", "attribute": "general_note", "value": "All lighting systems shall be tested to ensure proper calibration, adjustment, programming, and operation in accordance with IECC 2021 Section C408.3.", "source_text": "ELECTRICAL GENERAL NOTES: 3. ALL LIGHTING SYSTEMS SHALL BE TESTED TO ENSURE PROPER CALIBRATION, ADJUSTMENT, PROGRAMMING, AND OPERATION IN ACCORDANCE WITH IECC 2021 SECTION C408.3.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#4", "attribute": "keynote_assertion", "value": "Provide dimmer switch for control of sales area lighting. Coordinate final location with owner prior to rough-in.", "source_text": "ELECTRICAL KEYED NOTES: 1 PROVIDE DIMMER SWITCH FOR CONTROL OF SALES AREA LIGHTING. COORDINATE FINAL LOCATION WITH OWNER PRIOR TO ROUGH-IN.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#5", "attribute": "room_name", "value": "INVENTORY", "source_text": "INVENTORY", "normalized_value": "INVENTORY", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#6", "attribute": "room_name", "value": "RESTROOM", "source_text": "RESTROOM", "normalized_value": "RESTROOM", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#7", "attribute": "room_name", "value": "MANAGER'S OFFICE", "source_text": "MANAGER'S OFFICE", "normalized_value": "MANAGER'S OFFICE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#8", "attribute": "room_name", "value": "CLEANING SUPPLIES/STORAGE", "source_text": "CLEANING SUPPLIES/STORAGE", "normalized_value": "CLEANING SUPPLIES/STORAGE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#9", "attribute": "room_name", "value": "SALES AREA", "source_text": "SALES AREA", "normalized_value": "SALES AREA", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E03.01#10", "attribute": "general_note", "value": "fixture locations not matching arch", "source_text": "fixture locations not matching arch", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#0", "attribute": "room_name", "value": "INVENTORY", "source_text": "INVENTORY", "normalized_value": "INVENTORY", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#1", "attribute": "room_name", "value": "LOUNGE", "source_text": "LOUNGE", "normalized_value": "LOUNGE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#2", "attribute": "room_name", "value": "MEN'S RESTROOM", "source_text": "MEN'S RESTROOM", "normalized_value": "MEN'S RESTROOM", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#3", "attribute": "room_name", "value": "WOMEN'S RESTROOM", "source_text": "WOMEN'S RESTROOM", "normalized_value": "WOMEN'S RESTROOM", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#4", "attribute": "room_name", "value": "MANAGER'S OFFICE", "source_text": "MANAGER'S OFFICE", "normalized_value": "MANAGER'S OFFICE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#5", "attribute": "room_name", "value": "CLEANING SUPPLIES/STORAGE", "source_text": "CLEANING SUPPLIES/STORAGE", "normalized_value": "CLEANING SUPPLIES/STORAGE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#6", "attribute": "room_name", "value": "SALES AREA", "source_text": "SALES AREA", "normalized_value": "SALES AREA", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#7", "attribute": "equipment_location", "value": "2 CAT.6 cables at 18 inches AFF", "source_text": "(2) CAT.6/18\"", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive phrase containing quantity, type, and height which cannot be separated.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#8", "attribute": "equipment_location", "value": "2 CAT.6 cables at 18 inches AFF", "source_text": "(2) CAT.6/18\"", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive phrase containing quantity, type, and height which cannot be separated.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#9", "attribute": "equipment_location", "value": "2 CAT.6 cables at 18 inches AFF", "source_text": "(2) CAT.6/18\"", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive phrase containing quantity, type, and height which cannot be separated.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#10", "attribute": "equipment_location", "value": "2 CAT.6 cables at 18 inches AFF", "source_text": "(2) CAT.6/18\"", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive phrase containing quantity, type, and height which cannot be separated.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#11", "attribute": "equipment_location", "value": "2 CAT.6 cables at 18 inches AFF", "source_text": "(2) CAT.6/18\"", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive phrase containing quantity, type, and height which cannot be separated.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#12", "attribute": "equipment_location", "value": "2 CAT.6 cables at 55 inches AFF", "source_text": "(2) CAT.6/55\"/H", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive phrase containing quantity, type, and height which cannot be separated.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E04.01#13", "attribute": "equipment_location", "value": "2 CAT.6 cables at 38.5 inches AFF", "source_text": "(2) CAT.6/38.5\"/H", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive phrase containing quantity, type, and height which cannot be separated.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#0", "attribute": "grounding_requirement", "value": "For an I.G. device, the conduit shall be suitable for a ground path or an additional ground shall be pulled to ground the box", "source_text": "NEUTRAL BUS FOR AN I.G. DEVICE, THE CONDUIT SHALL BE SUITABLE FOR A GROUND PATH OR AN ADDITIONAL GROUND SHALL BE PULLED TO GROUND THE BOX.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#1", "attribute": "grounding_requirement", "value": "Isolated ground bar shall be insulated from enclosure or installed if not existing, when indicated", "source_text": "ISOLATED GROUND BAR (WHEN INDICATED) INSULATED FROM ENCLOSURE OR INSTALL BOTH IF NOT EXISTING", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Descriptive text, no normalization applied.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#2", "attribute": "prohibited_material", "value": "Tie wire", "source_text": "NOTE: TIE WIRE SHALL NOT BE USED AS A COMPONENT OF ANY RACEWAY HANGER SYSTEM.", "normalized_value": "Tie wire", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#3", "attribute": "future_capacity", "value": "25", "source_text": "PROVIDE SPACE & SUPPORT FOR 25% FUTURE CAPACITY", "normalized_value": "25", "normalized_unit": "%", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#4", "attribute": "component_size", "value": "3/4\" TO 1\"", "source_text": "CONDUIT CLAMP - 3/4\" TO 1\"", "normalized_value": "0.75 to 1", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Value represents a range of sizes.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#5", "attribute": "component_size", "value": "1 1/4\" TO 6\"", "source_text": "UNISTRUT 2 PIECE CHANNEL PIPE STRAPS - 1 1/4\" TO 6\"", "normalized_value": "1.25 to 6", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Value represents a range of sizes.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#6", "attribute": "fire_rating", "value": "3 Hour", "source_text": "PACK BOTH ENDS OF SLEEVE WITH 3M FIRE DAM 150 3 HOUR RATED CAULK OR APPROVED EQUAL", "normalized_value": "3", "normalized_unit": "hours", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#7", "attribute": "material", "value": "SCHEDULE 40 BLACK STEEL PIPE SLEEVE", "source_text": "SCHEDULE 40 BLACK STEEL PIPE SLEEVE", "normalized_value": "SCHEDULE 40 BLACK STEEL PIPE SLEEVE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#8", "attribute": "installation_depth", "value": "1", "source_text": "MINIMUM (1\") DEEP", "normalized_value": "1", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Value is a minimum.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#9", "attribute": "extension_beyond_wall", "value": "6", "source_text": "EXTEND CONDUIT (6\") BEYOND WALL", "normalized_value": "6", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#10", "attribute": "size", "value": "4-11/16\" square, 2-5/8\" deep", "source_text": "4-11/16\" SQUARE, 2-5/8\" DEEP JUNCTION BOX", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Complex dimension representing width, height, and depth.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#11", "attribute": "size", "value": "1", "source_text": "1\" CONDUIT MINIMUM", "normalized_value": "1", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Value is a minimum.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#12", "attribute": "stub_up_height", "value": "6", "source_text": "STUB CONDUIT 6\" INTO CEILING SPACE", "normalized_value": "6", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "E05.01#13", "attribute": "grid_spacing", "value": "4'-0\"", "source_text": "J-HOOKS SPACED EVERY 4'0\" TO THE ASSOCIATED TELECOMMUNICATION ROOM", "normalized_value": "48", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}] |