PRD — DWG to Revit 3D 모델 자동 변환기
1. 개요
배경
건축 설계 현장에서는 AutoCAD DWG 파일로 작성된 층별 평면도를 Revit BIM 모델로 변환하는 작업이 반복적으로 발생한다. 현재는 대부분 수동 트레이싱으로 처리하며, 중규모 건물 기준 2~4주의 작업시간이 소요된다.
목표
층별 DWG 파일을 입력받아 Revit에서 바로 사용 가능한 IFC 파일을 자동 생성한다. 수동 작업 대비 초기 모델 생성 시간을 80% 이상 단축하는 것을 목표로 한다.
범위 (In Scope)
- DWG / DXF 파일 파싱
- 건축 요소 자동 분류 (벽, 기둥, 슬래브, 문, 창)
- 층간 연결 및 3D 모델 조립
- IFC 2x3 / IFC 4 포맷 출력
- 변환 결과 리포트 생성
범위 외 (Out of Scope)
- MEP (기계/전기/배관) 요소 변환
- 구조 해석 또는 하중 계산
- Revit 패밀리 자동 생성
- 도면 품질 검수 자동화
- 클라우드 서비스 / SaaS 배포
2. 사용자 및 사용 시나리오
주요 사용자
- BIM 코디네이터 / 건축 BIM 담당자
- 건축설계사무소 CAD 팀
- 시공사 BIM 팀
핵심 시나리오
시나리오 A — 신규 프로젝트 변환
"10층짜리 오피스 건물의 층별 DWG 10개를 IFC로 변환하고 싶다"
- DWG 파일 10개를 input 폴더에 넣는다
- 층고 정보를 config 파일에 입력한다
- 변환 스크립트를 실행한다
- IFC 파일과 변환 리포트를 확인한다
- Revit에서 IFC를 임포트해 수동 수정한다
시나리오 B — 단일 층 테스트
"1층 평면도부터 먼저 테스트해보고 싶다"
- DWG 1개를 단독 실행한다
- 파싱 결과 미리보기로 요소 분류를 확인한다
- 오류 리포트로 수동 수정 필요 항목을 파악한다
3. 기능 요구사항
F01 — DWG/DXF 파싱
- [ ] DWG R2010 이상, DXF AC1015 이상 지원
- [ ] 레이어별 엔티티 추출 (LINE, LWPOLYLINE, ARC, CIRCLE, INSERT/BLOCK)
- [ ] 단위 자동 감지 및 mm 통일
- [ ] 블록(INSERT) 자동 분해
F02 — 전처리
- [ ] 중복 엔티티 제거 (허용 오차: 0.1mm)
- [ ] 끝점 스냅 (허용 오차: 1.0mm)
- [ ] 짧은 선분 제거 (5mm 미만)
- [ ] 열린 폴리라인 자동 닫기 시도
F03 — 요소 분류
- [ ] 레이어명 기반 1차 분류 (KS / AIA / 사용자 정의 규칙)
- [ ] 형상 기반 2차 분류 (평행 두 선 → 벽, 닫힌 폴리라인 → 방/기둥)
- [ ] Claude API 기반 3차 분류 (1, 2차 실패 시)
- [ ] 분류 신뢰도 점수 출력 (0.0 ~ 1.0)
F04 — 벽 모델링
- [ ] 단선 → 복선 변환 (기본 두께: 200mm)
- [ ] 복선 벽 두께 자동 측정
- [ ] 벽 연결점 처리 (T자, L자, 십자)
- [ ] 내벽 / 외벽 구분
F05 — 개구부 (문/창) 처리
- [ ] 벽과 교차점 감지
- [ ] 개구부 너비/높이 추출
- [ ] IFC 도어/윈도우 매핑
F06 — 층간 연결
- [ ] 층고 config 기반 Z축 배치
- [ ] 기둥/코어 수직 연속성 검사
- [ ] 슬래브 자동 생성 (층 외곽선 기반)
F07 — IFC 출력
- [ ] IFC 2x3 및 IFC 4 지원
- [ ] 필수 속성 자동 입력 (Name, GlobalId, ObjectType)
- [ ] LOD 200 수준 출력
- [ ] 한국 좌표계 지원 (EPSG:5186)
F08 — 리포트
- [ ] 변환 성공/경고/실패 항목 분류
- [ ] HTML 리포트 생성
- [ ] 실패 요소 좌표 목록 출력 (수동 수정용)
4. 비기능 요구사항
항목 목표값
| 처리 속도 | 층당 5분 이내 (엔티티 10,000개 기준) |
| 메모리 | 층당 최대 2GB |
| 자동화율 | 전체 요소의 70% 이상 자동 변환 |
| 좌표 정밀도 | ±1mm 이내 |
| 지원 OS | Windows 10+, macOS 12+, Ubuntu 22.04+ |
| Python 버전 | 3.10 이상 |
5. 기술 스택
입력 ezdxf >= 1.1
형상 처리 shapely >= 2.0, numpy >= 1.24
AI 분류 anthropic >= 0.25 (claude-sonnet-4-20250514)
IFC 출력 ifcopenshell >= 0.7
CLI click >= 8.0
리포트 jinja2 >= 3.0
테스트 pytest >= 8.0
6. 입출력 스펙
입력
input/
├── B1F.dwg
├── 1F.dwg
├── 2F.dwg
└── ...
config.yaml # 층고, 레이어 규칙, 옵션
config.yaml 구조
project:
name: "샘플 오피스 빌딩"
crs: "EPSG:5186"
floors:
- id: "B1F"
file: "B1F.dwg"
elevation: -4200
height: 4200
- id: "1F"
file: "1F.dwg"
elevation: 0
height: 4500
layer_rules:
wall: ["A-WALL", "벽체", "WALL"]
column: ["A-COLS", "기둥", "COLUMN"]
door: ["A-DOOR", "문", "DOOR"]
window: ["A-GLAZ", "창", "WINDOW"]
options:
snap_tolerance: 1.0 # mm
min_wall_thickness: 50 # mm
max_wall_thickness: 600 # mm
use_claude_api: true
ifc_version: "IFC4"
출력
output/
├── model.ifc # 최종 IFC 파일
├── report.html # 변환 리포트
└── errors/
├── unclassified.csv # 미분류 요소 목록
└── failed.csv # 변환 실패 요소 목록
7. 성공 기준
기준 측정 방법
| 벽 자동 변환율 ≥ 80% | 샘플 도면 10개 기준 |
| 기둥 자동 변환율 ≥ 90% | 샘플 도면 10개 기준 |
| 좌표 오차 ≤ 1mm | 수동 측정 vs 자동 결과 비교 |
| Revit IFC 임포트 오류 0건 | Revit 2024 기준 |
| 처리 시간 ≤ 5분/층 | 10,000 엔티티 기준 |
8. 마일스톤
단계 내용 목표
| M1 | DWG 파싱 + 전처리 | 1주 |
| M2 | 요소 분류 + 벽 모델링 | 2주 |
| M3 | 개구부 + 층간 연결 | 3주 |
| M4 | IFC 출력 + 리포트 | 4주 |
| M5 | 테스트 + 문서화 | 5주 |
'Vibe coding' 카테고리의 다른 글
| V-04. CLAUDE.md-AutoCAD DWG 도면에서 Revit 3D 모델 자동 생성하기 (0) | 2026.05.21 |
|---|---|
| V-03. PLAN.md — AutoCAD DWG 도면에서 Revit 3D 모델 자동 생성하기 (0) | 2026.05.21 |
| V-01. AutoCAD DWG 도면에서 Revit 3D 모델 자동 생성하기Claude와 함께한 BIM 자동화 프로젝트 — 아이디어에서 파이프라인까지 (0) | 2026.05.21 |
| claude.ai 활용법 가이드 (5) | 2026.04.28 |
| Claude Code 사용법 가이드 (0) | 2026.04.28 |