배치 내보내기
PDF Batch Export
여러 Revit 문서의 시트를 PDF로 한 번에 뽑기
🖱 쓰는 법
- YoonDream 탭 → Admin 패널 → PDF Batch Export 버튼 클릭
- 대상 문서 추가
- 열린 문서 — 지금 Revit에 열려 있는 파일 자동 감지
- 파일 추가 — 디스크에서
.rvt파일 직접 고르기 - 폴더 추가 — 폴더 통째로 넣으면 하위
.rvt전부 수집 (백업은 자동 제외)
- 문서별로 내보낼 시트 체크
- 출력 모드 선택 (개별 PDF vs 합본 PDF)
- 파일명 패턴 입력 — 토큰 버튼 클릭으로 삽입
- 내보내기 클릭 → 지정 폴더에 PDF 생성
📂 출력 모드
| 옵션 | 언제 쓰나요? |
|---|---|
| 시트별 개별 PDF | 시트마다 파일이 분리되어야 할 때 (예: 도면 검토용 개별 공유) |
| 문서별 합본 PDF | 한 문서의 시트 전체를 묶어 한 PDF로 주고받고 싶을 때 (예: 발주처 제출용) |
🏷 파일명 토큰
패턴 입력란에 아래 토큰을 넣으면 자동으로 치환됩니다:
| 토큰 | 예시 출력 |
|---|---|
{문서명} |
STR_Building-A |
{시트번호} |
S-001 |
{시트이름} |
구조평면도 - 1F |
{날짜} |
2024-04-09 |
{건물명} |
Building-A |
{건물번호} |
A |
💡 이럴 때 쓰세요
- 매주 월요일 발주처 보고용 PDF를 10개 문서에서 뽑아야 할 때 — 한 번에 돌리고 퇴근 가능
- 분야별로 시트를 묶어 받고 싶을 때 — 구조 파일엔 S 시리즈 시트만, 건축엔 A 시리즈만 체크하면 자동 분리
- 파일명 규칙이 복잡할 때 (예:
{건물번호}_{시트번호}_{시트이름}_{날짜}) — 토큰 조합으로 수백 개 일관된 이름으로 자동 생성 - 마지막으로 쓴 설정을 매번 다시 지정하기 귀찮을 때 — 설정은 자동 저장, 다음에 열면 그대로 복원
백업 파일 걱정 안 해도 됩니다
폴더를 통째로 넣어도 .0001.rvt, _backup, 백업 폴더 같은 건 자동으로 걸러내므로 실수로 옛 버전을 뽑을 일이 없습니다.
🔍 UI 미리보기
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Admin.panel/pdf_batch_export.pushbutton/— script.py, ui.xaml, pdf_batch_config.json
문서명 파싱 규칙
COCO_Document_분야코드_식별자_설명_Central_detached 형태에서:
_로 분리하여 4번째 요소부터 추출central,detached,local등 접미사 제거- 대문자 변환
{문서명} 토큰 가공: lib/yoon_doc_title.py 에서 처리. DWG Batch Export와 공유.
백업 파일 자동 제외 규칙
- 파일 패턴:
\.[0-9]{4}\.rvt(Revit 자동 백업) - 키워드:
backup,_bak,-bak,@bak,.bak - 폴더 키워드:
backup,bak,백업,휴지통,archive,old
설정 저장
pdf_batch_config.json에 마지막 사용 설정 자동 저장 (폴더 경로, 출력 모드, 패턴 등).
제약사항
- 교차 문서 PDF 합본은 Revit + IronPython 환경에서 불가 (문서별 합본만 지원).
DWG Batch Export
한 파일에 만들어 둔 DWG 설정을 여러 문서에 그대로 적용해 DWG 일괄 생성
🖱 쓰는 법
- YoonDream 탭 → Admin 패널 → DWG Batch Export 버튼 클릭
- 레퍼런스 파일 선택 — DWG Export Setup이 이미 만들어진 기준
.rvt지정 - Export 설정 드롭다운에서 사용할 설정 선택
- 대상 문서 추가 — 같은 설정으로 뽑을
.rvt파일들 넣기 - 문서별로 내보낼 시트 선택 (검색 · ▲▼ 재정렬 가능)
- 내보내기 클릭 → 지정 폴더에 DWG 생성
💡 이럴 때 쓰세요
- 프로젝트 DWG 설정(레이어 매핑, 선두께 등)이 딱 하나만 있고, 모든 하위 파일에 똑같이 적용해야 할 때
- 레퍼런스 파일에서만 설정을 관리하고 싶을 때 — 하위 파일마다 설정을 심어둘 필요 없음
- 발주처가 "동일 설정으로 100개 파일 DWG 달라"고 할 때 — 한 번 지정하고 돌려놓으면 됨
PDF Batch와 분리되어 있는 이유
DWG는 설정을 레퍼런스에서 끌어와야 하기 때문에 PDF처럼 "각 파일이 스스로 아는" 구조가 아닙니다. 그래서 메뉴가 따로 있습니다.
🔍 UI 미리보기
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Admin.panel/dwg_batch_export.pushbutton/— script.py, ui.xaml, dwg_batch_config.json
워크플로우
- 레퍼런스
.rvt에서ExportDWGSettingsOfClass로 수집 - 사용자가 ComboBox에서 선택 →
DWGExportOptions.GetPredefinedOptions(doc, name)로 로드 - 대상 문서 각각에서
doc.Export(folder, name, viewIds, options)호출
핵심 Revit API
| API | 용도 |
|---|---|
ExportDWGSettings |
DWG 내보내기 설정 정의 수집 |
DWGExportOptions.GetPredefinedOptions() |
이름으로 설정 로드 |
doc.Export(folder, name, viewIds, options) |
DWG 내보내기 실행 |
PDF 배치와 분리한 이유
DWG는 레퍼런스 설정 전송 워크플로우가 완전히 다름 — 설정이 각 파일에 내장되지 않고 레퍼런스에서 가져와야 함.
에러 기록: ERROR/dwg_batch_export_errors.md
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으로 파일 출력- 이미 열린 문서는 경로 + 중앙파일 경로 양쪽으로 감지하여 중복 열기 방지