Stop Doing Building Code
Reviews by Hand
A repeatable 4-step AI workflow — parcel lookup, zoning data collection, statutory analysis, and auto-generated reports — that turns a 2-hour code review into a 30-minute task.
Before a single wall gets drawn, architects run the same checklist on every new project: look up the zoning, check the floor-area-ratio cap, find the height limit, verify parking requirements, and read through the local ordinance for anything unusual. It's necessary work — and it's tedious every single time.
This post walks through a four-step automation workflow that chains public land-use APIs, AI-assisted statutory analysis, and a document template to produce a complete building code review report. The running example is a 173.25 m² parcel in Seoul's Type-2 General Residential Zone, using the DDFL educational report format as the output.
→ Workflow overview
verify
data pull
review
output
Steps 1 and 2 are API calls that complete in seconds. Step 3 is where AI earns its keep — mapping raw regulatory text to the specific parcel. Step 4 assembles everything into a clean, submission-ready document.
1 Address verification & parcel code lookup
Why this step matters
The land-use APIs in Step 2 don't accept free-text addresses — they require the PNU (Parcel Number Unit) code, a 17-digit identifier unique to every cadastral parcel in Korea. Everything downstream depends on getting this right first.
How to do it
- Road Address API (MOIS, juso.go.kr): converts any Korean address → canonical lot address + legal-dong code
- Vworld Geocoding API (vworld.kr): lot address → WGS-84 coordinates + PNU code in one call
- Ask Claude: "Write Python code to call the Vworld API and return the PNU code for this address." It writes the full request and JSON parser instantly.
- Result: a standardised lot-address string + 17-digit PNU, ready for Step 2
2 Land-use data collection — Eum portal API
Key fields to extract
| Field | Example value | Used for |
|---|---|---|
| Zoning district | Type-2 General Residential | Sets BCR / FAR baseline |
| Use-district overlay | Maximum height district | Additional height cap check |
| Use-zone designation | Development-restricted zone | Act-restriction flag |
| Parcel area | 173.25 m² | Absolute BCR / FAR limits |
| Road frontage | 6 m collector road | Access, setback, corner cut |
Automating the pull
- Use the Eum OpenAPI (available at data.go.kr): POST the PNU code → JSON land-use plan response
- Python +
requests+openpyxl: API call → parse → write to Excel in ~20 lines - Paste the JSON into Claude: "Summarise the planning constraints on this parcel in a table."
- Output: zoning class, BCR %, FAR %, permitted-use list — structured and ready for Step 3
Sample collected result
| Field | Value |
|---|---|
| Location | Seoul, District 00, Lot 00-00 |
| Zoning district | Type-2 General Residential Zone |
| Parcel area | 173.25 m² |
| Legal BCR | 60% (max footprint 103.95 m²) |
| Legal FAR | 200% (max GFA 346.50 m²) |
| Parking requirement | 1 space per 134 m² facility area |
3 Statutory code review — Building Act, Decrees & ordinances
Korean building law is layered: the national Building Act sets principles; the Enforcement Decree fills in detail; Enforcement Rules add technical specifics; and the local ordinance (서울특별시 도시계획조례) applies the final municipality-specific numbers. Each layer can only tighten — never relax — the one above it.
Regulatory sources to query
| Source | Key items | Where to fetch |
|---|---|---|
| Building Act | Parcel access, building line, BCR/FAR principles | law.go.kr |
| Enforcement Decree | North setback, height calc, corner cut, height relaxation | law.go.kr |
| Enforcement Rules | Small-scale parking, accessibility | law.go.kr |
| Seoul City Ordinance | BCR/FAR precise limits, use-specific allowances | Seoul self-governance portal |
| Seoul Parking Ordinance | Strengthened on-site parking requirements | Seoul self-governance portal |
| NLUIA Decree Annex 5 | Permitted-use list for Type-2 Residential | law.go.kr |
AI prompt pattern — copy and paste this
Auto-generated code reference table
| Item | Code reference | Standard | Note |
|---|---|---|---|
| Road access | Building Act Art. 44 | ≥ 2 m road frontage | N/A |
| Building line | Art. 46 · Decree Art. 31 | ≥ 4 m road → statutory line | N/A |
| North daylight setback | Art. 61 · Decree Art. 86 | ≥ 1.5 m; > 9 m height → H/2 | 10 m revision pending |
| Max height | Building Act Art. 60 | 18 m | Relaxation possible |
| BCR | Seoul Ordinance Art. 54 | 60% | — |
| FAR | Seoul Ordinance Art. 55 | 200% | — |
| Parking | Seoul Parking Ordinance | 1 space / 134 m² | Small-scale possible |
| Permitted use | NLUIA Decree Annex 5 | Class-1 neighbourhood facility | Buildable ✓ |
4 Auto-generate the DDFL building code report
With Steps 1–3 done you have all the numbers. This step populates the DDFL template — a Building Overview section (project particulars) and a Code Review Table (every checked item with its statutory citation).
Building overview — auto-filled example
| Field | Value |
|---|---|
| Location | Seoul, District 00, Lot 00-00 |
| Zoning | Type-2 General Residential Zone |
| Parcel area | 173.25 m² |
| Footprint (design) | [populated after design input] |
| GFA | [sum of floor areas — auto-calculated] |
| Legal BCR | 60% → 103.95 m² max |
| Legal FAR | 200% → 346.50 m² max |
| Parking (legal) | 1 space per 134 m² facility area |
Implementation options
- Python + openpyxl: write values into named-range Excel template; BCR/FAR formulas recalculate automatically when design area is entered
- Python + python-docx: find/replace placeholder tokens in a Word template — one script, reusable for every project
- n8n or Make: build a no-code pipeline that runs the full API → AI → document chain on demand
- Claude prompt chain: feed Steps 1–3 outputs as context, request the DDFL table as Markdown, then convert to Word/PDF via Pandoc
Output formats
! Before you rely on this in production
- Statutes are amended frequently — verify every article against current text on law.go.kr before any submission
- Eum API data may lag gazette changes — issue a fresh confirmation certificate for permit-stage work
- AI-generated code analysis is a research aid, not a legal opinion — a licensed architect must review and sign off
- Ordinances vary by municipality — replace Seoul-specific sources for projects outside Seoul
- The proposed 10 m north-setback threshold revision is not yet in force — confirm before relying on it
- First-pass review time cut by roughly 70% — hours become minutes
- Fewer omissions: the checklist-driven approach flags items human reviewers miss under time pressure
- Great onboarding tool: junior staff absorb the code hierarchy as each step produces structured output
- Multi-site screening: compare five candidate parcels side-by-side in the time a manual review covers one
No comments:
Post a Comment