배치 내보내기
Sheet Export — PDF + DWG 통합
여러 Revit 문서의 시트를 PDF·DWG로 한 번에 내보내는 통합 도구
옛 PDF Batch + DWG Batch 두 도구를 하나로 묶었습니다. 시트를 한 번만 골라도 PDF와 DWG가 같은 이름으로 동시에 떨어지고, 자주 쓰는 묶음은 프리셋으로 저장 · 시트 동기화로 "구조만 / 1층만" 같은 카테고리 선택을 클릭 한 번에 할 수 있습니다.
🖱 쓰는 법
- YoonDream 탭 → Admin 패널 → Sheet Export 버튼 클릭
- 출력 형식 선택 — PDF · DWG 둘 다 또는 하나만 (화면 상단 체크박스)
- DWG를 켰으면 DWG 레퍼런스 파일 지정 + 내보내기 설정 선택
- 대상 문서 추가 — 열린 문서 · 파일 · 폴더 (백업 자동 제외)
- 시트 로드 클릭
- 시트 선택 — 카드 클릭 · 검색 · 동기화 중 골라서
- 출력 폴더 지정 + 파일명 패턴 입력
- 내보내기
📂 출력 형식과 폴더 정리
| 출력 형식 | 결과 |
|---|---|
| PDF만 체크 | 옛 PDF Batch와 같은 동작. 합본 / 개별 / 시트번호 분할 가능 |
| DWG만 체크 | 옛 DWG Batch와 같은 동작. 레퍼런스 파일에서 설정 가져옴 |
| 둘 다 체크 | 같은 베이스 이름으로 PDF·DWG 동시 생성 — 짝지어 발송하기 편함 |
출력 폴더 옵션
- 기본: 둘이 같은 폴더에 떨어짐
- ☑ "PDF·DWG 폴더 분리" + ☑ "자동 하위폴더" — 출력 폴더에
PDF/,DWG/폴더를 자동으로 만들고 분류
🏷 파일명 토큰
패턴 입력란에 아래 토큰을 넣으면 자동 치환됩니다. PDF·DWG 둘 다 같은 베이스 이름 사용.
| 토큰 | 예시 |
|---|---|
{문서명} |
STR_Building-A |
{시트번호} |
29-101 |
{시트이름} |
구조평면도 - 1F |
{날짜} |
2026-05-26 |
{건물명} |
Building-A |
{건물번호} |
A |
💾 프리셋 — 매번 똑같이 고르는 거 그만
자주 쓰는 문서 묶음 + 출력 설정을 한 묶음으로 저장. 다음 사용 시 클릭 한 번으로 복원.
- [프리셋 저장] — 현재 문서 목록 · 형식 · 폴더 · 파일명 · DWG 레퍼런스를 묶어서 이름 붙여 저장
- [프리셋 불러오기] — 저장된 묶음 선택 → 자동 복원. 누락된 파일은 알림으로 안내
- 시트 선택은 저장하지 않음 (빌딩마다 시트번호가 달라서) → 대신 동기화로 자동 선택
🔄 시트 동기화 — "구조만" / "1층만" 같은 카테고리 선택
수십 개 문서를 하나씩 들어가 시트 체크할 필요 없이, 규칙 한 줄로 모든 문서에서 일괄 선택.
- [동기화...] 버튼 클릭 (시트 목록 헤더 우측)
- 다이얼로그에서 매칭 방식 선택:
- 번호 prefix — 예:
29입력하면 모든 문서에서29-로 시작하는 시트가 선택됨 (감지된 prefix는 자동 칩 버튼으로 표시) - 이름 키워드 — 예:
구조,평면,1F같은 단어가 시트 이름에 들어간 시트 선택 - 둘 다 켜면 OR 결합 — 표준을 어긴 시트도 키워드로 구제
- 번호 prefix — 예:
- 미리보기에서 매칭 수 확인 (누락 의심 시 ⚠ 경고)
- 덮어쓰기 또는 추가 적용 방식 고른 뒤 [적용]
💡 이럴 때 쓰세요
- 발주처가 PDF·DWG 둘 다 달라고 할 때 — 한 번에 끝, 파일명도 짝지어짐
- "구조 도면만 뽑아주세요" 같은 카테고리 요청 — 동기화 prefix 한 번이면 수십 개 빌딩 통째로 처리
- 매주 똑같이 반복하는 추출 작업 — 처음 한 번만 프리셋 저장하면 다음부터 클릭 3~4번
- PDF·DWG를 단위별로 폴더 정리하고 싶을 때 — 자동 하위폴더 옵션이 알아서 분류
추천 워크플로우 (가장 빠른 순서)
- [프리셋 불러오기] → 문서 · 설정 묶음 복원
- [시트 로드]
- [동기화...] → prefix 29 (구조) 또는 키워드 입력 → [적용]
- [내보내기]
→ 클릭 4번으로 수십 개 빌딩 처리.
백업 파일과 링크 문서는 자동 처리
.0001.rvt,_backup,백업폴더는 알아서 제외- 링크로 불려온 파일은 임시 복사본으로 우회해서 안전하게 변환
🔍 UI 미리보기
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Admin.panel/sheet_export.pushbutton/—script.py,ui.xaml,sync_dialog.xaml,bundle.yaml,sheet_export_config.json(자동 생성),sheet_export_presets.json(자동 생성)- 기획서:
dev/active/pdf-dwg-batch-merge/plan.md
통합 배경
옛 pdf_batch_export.pushbutton/ + dwg_batch_export.pushbutton/ 두 도구를 하나로 합침 (2026-05-26 삭제). 코드 중복 약 800줄 제거, 한 문서에 대해 백그라운드 1회 오픈으로 PDF·DWG 동시 처리 → 30~120초/문서 절감.
핵심 Revit API
| API | 용도 |
|---|---|
PDFExportOptions / ExportPDFSettings.GetOptions() |
PDF 내보내기 (FileName 은 확장자 미포함 필수) |
DWGExportOptions.GetPredefinedOptions(doc, setupName) |
DWG 설정 로드 |
ExportDWGSettings (FilteredElementCollector) |
DWG 설정 수집 |
doc.Export(folder, base, viewIds, dwgOptions) |
DWG 내보내기 (base = prefix, 확장자 미포함) |
app.OpenDocumentFile(... DetachAndPreserveWorksets) |
디스크 파일 백그라운드 오픈 |
파일명 일치 보장
_fixup_pdf_filename() / export_dwg_with_base() 의 rename 후처리로 Revit 버전 차이를 흡수 — 결과는 항상 {base}.pdf, {base}.dwg.
시트 동기화
parse_sheet_prefix() 재사용 (PDF 분할 출력과 동일 함수). 다이얼로그에서 prefix·키워드 OR 결합, 누락 의심 시트번호 자동 경고.
프리셋
sheet_export_presets.json 에 문서 경로 + 출력 형식 + 폴더 + 파일명 패턴 + DWG 레퍼런스 + 합본/분할 설정을 묶어 저장. Quick Open 의 프리셋 패턴과 호환.
에러 기록
ERROR/pdf_batch_export_errors.md(구 도구, 통합 도구에도 동일 패턴 적용)ERROR/dwg_batch_export_errors.md(구 도구)ERROR/pdf_export_filename_double_extension.md(2026-05-26,.pdf.pdf중복 버그 해결)
NWC Batch Export
오늘 수정된 RVT만 자동으로 골라 NWC로 한꺼번에 변환
🖱 쓰는 법
- YoonDream 탭 → Admin 패널 → NWC Batch Export 버튼 클릭
- 모드 드롭다운에서 추출 방식 선택
- 빠름 — 오늘 수정분만 (일반적인 일일 작업)
- 전체 (초기 세팅 · 주간 전체 리프레시)
- 프로젝트 사이트별 카드에서 추출할 대상 체크
- 필요 시 🔄 경로 재설정 버튼으로 원본/서버 경로 갱신
- 🚀 작업 시작 클릭 → 파일 순차 처리
📂 멀티 사이트 구조
도구는 여러 프로젝트 폴더를 동시에 관리합니다. 각 프로젝트는 사이드바 카드로 구분되고, 카드마다 총 파일 수와 오늘 수정된 파일 수 뱃지가 표시되어 어느 폴더에 오늘 작업분이 있는지 한눈에 확인 가능합니다. 프로젝트 이름(SITE · MCS · BBU 등)은 폴더 구조에 맞춰 자유롭게 설정할 수 있습니다.
💡 이럴 때 쓰세요
- 매일 아침 전날 수정된 파일만 Navisworks에 업데이트하고 싶을 때 — "빠름" 모드 한 방
- 주간 통합 검토 전 전체 파일 재생성이 필요할 때 — "전체" 모드로 한 번에
- 프로젝트가 여러 개이고 각각 다른 폴더에 저장되어야 할 때 — 프로젝트별 카드로 동시 관리
링크로 로드된 파일은 자동으로 임시 폴더에 복사됩니다
Revit Link로 불려오는 파일은 직접 열면 NWC 변환이 실패합니다. 이 도구는 링크 파일을 자동으로 임시 복사하여 안전하게 처리하니 신경 안 써도 됩니다.
🔍 UI 미리보기
📂 D:\2024_Project\Revit\ 총 15 오늘 3
📂 D:\2024_Project\Revit\ 총 12 오늘 2
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Admin.panel/nwc_batch.pushbutton/— script.py, ui.xaml, shared_config.json
멀티 사이트 설정 매핑 (shared_config.json)
| 사이트 | 색상 | 원본 경로 키 | 서버 경로 |
|---|---|---|---|
| SITE | 파랑 | last_site_src |
00.SITE |
| MCS | 녹색 | last_mcs_src |
01.MCS |
| BBU | 보라 | last_bbu_src |
02.BBU |
증분 추출 모드
- 빠름 — 오늘 날짜(
YYYY.MM.DD) 폴더에서 수정된 파일만 - 전체 — 모든 RVT 파일
링크 파일 충돌 해결
핵심 이슈
RevitLink로 로드된 파일을 app.OpenDocumentFile하면 IsLinked=True 참조 반환 → NWC Export 내부 Transaction 실패
해결: doc.IsLinked이면 tempfile.mkdtemp()에 복사 → 다른 경로로 열기 → 링크 인식 해제
추가 동작 (2026-04-21): 링크 워크셋 자동 언로드 추가로 사이트 파일 무한 대기 방지.
핵심 Revit API
| API | 용도 |
|---|---|
NavisworksExportOptions |
NWC 내보내기 설정 |
doc.Export() |
NWC 파일 생성 |
tempfile.mkdtemp() |
링크 충돌 우회용 임시 폴더 |
금지사항: OpenAndActivateDocument는 열기 후 Export/Close 등 후속 작업이 필요한 경우 사용 금지 (UI 컨텍스트 파괴).
에러 기록: ERROR/nwc_batch_errors.md (3건)
Schedule Batch Export
기준 문서의 일람표를 여러 대상 문서에 복사한 뒤 CSV로 일괄 추출
🖱 쓰는 법
- YoonDream 탭 → Admin 패널 → Schedule Batch Export 버튼 클릭
- 기준 문서 선택 — 복사해 갈 일람표들이 있는
.rvt - 복사할 일람표 체크
- 대상 문서 추가 — 같은 일람표를 씌울
.rvt파일들 넣기 - 분야 코드 필터 선택 (AR · ST · ME 등) — 필요할 때만
- 실행 클릭 → 각 대상에 일람표 복사 + CSV 추출
💡 이럴 때 쓰세요
- 같은 물량 집계표 양식을 50개 파일 모두에 붙여넣고 CSV로 뽑아야 할 때
- 기준 문서에서 관리하는 검수용 일람표를 팀원 파일에 일괄 배포할 때
- 분야별로 다른 일람표 패턴이 있을 때 — AR/ST/ME 필터로 분야 파일에만 해당 일람표 배포
복사 중 경고는 자동으로 삼켜집니다
일람표 복사 중 흔히 나오는 "이미 동일 이름이 있습니다" 같은 비치명적 경고는 도구가 자동으로 처리하므로 대화상자 클릭할 필요 없습니다.
🔍 UI 미리보기
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Admin.panel/schedulebatchexport.pushbutton/
워크플로우
- 기준 문서의
ViewSchedule수집 - 사용자가 복사할 일람표 선택
ElementTransformUtils.CopyElements()로 대상 문서에 일람표 복사- 복사된 일람표에서 CSV 추출 (
codecs인코딩 처리)
분야 코드 필터링
AR, MR, ST, EL, ME, FP, PL, COCO, BIM, ALL
경고 처리
WarningSwallower(IFailuresPreprocessor) — 복사 시 발생하는 비치명적 경고 자동 무시.
시트 목록 내보내기
여러 Revit 문서의 시트 번호 + 이름을 텍스트 파일로 뽑기
🖱 쓰는 법
- YoonDream 탭 → Admin 패널 → 시트 목록 내보내기 버튼 클릭
- 대상 문서 선택 (열린 문서 · 파일 · 폴더)
- 내보내기 클릭 → 지정 위치에 텍스트 파일 생성
💡 이럴 때 쓰세요
- 시트 번호/이름 리스트를 엑셀·워드에 붙여넣을 때 — Revit을 하나씩 열 필요 없음
- 발주처 제출용 도면 리스트 만들 때 — 여러 파일의 시트를 한 파일로 통합
- 도면 목록 검수할 때 — 누락 시트 비교를 위해 리스트 뽑기
이미 열린 문서는 자동 감지
체크한 파일이 이미 Revit에 열려있으면 다시 열지 않고 그 참조를 그대로 사용하므로 작업이 빨라지고 중복 열기 오류가 없습니다.
🔍 UI 미리보기
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Admin.panel/export_sheet_list.pushbutton/
핵심 로직
FilteredElementCollector로ViewSheet수집System.IO.StreamWriter+System.Text.Encoding으로 파일 출력- 이미 열린 문서는 경로 + 중앙파일 경로 양쪽으로 감지하여 중복 열기 방지