콘텐츠로 이동

배치 내보내기

Sheet Export — PDF + DWG 통합

여러 Revit 문서의 시트를 PDF·DWG로 한 번에 내보내는 통합 도구

옛 PDF Batch + DWG Batch 두 도구를 하나로 묶었습니다. 시트를 한 번만 골라도 PDF와 DWG가 같은 이름으로 동시에 떨어지고, 자주 쓰는 묶음은 프리셋으로 저장 · 시트 동기화로 "구조만 / 1층만" 같은 카테고리 선택을 클릭 한 번에 할 수 있습니다.

🖱 쓰는 법

  1. YoonDream 탭 → Admin 패널 → Sheet Export 버튼 클릭
  2. 출력 형식 선택 — PDF · DWG 둘 다 또는 하나만 (화면 상단 체크박스)
  3. DWG를 켰으면 DWG 레퍼런스 파일 지정 + 내보내기 설정 선택
  4. 대상 문서 추가 — 열린 문서 · 파일 · 폴더 (백업 자동 제외)
  5. 시트 로드 클릭
  6. 시트 선택 — 카드 클릭 · 검색 · 동기화 중 골라서
  7. 출력 폴더 지정 + 파일명 패턴 입력
  8. 내보내기

📂 출력 형식과 폴더 정리

출력 형식 결과
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층만" 같은 카테고리 선택

수십 개 문서를 하나씩 들어가 시트 체크할 필요 없이, 규칙 한 줄로 모든 문서에서 일괄 선택.

  1. [동기화...] 버튼 클릭 (시트 목록 헤더 우측)
  2. 다이얼로그에서 매칭 방식 선택:
    • 번호 prefix — 예: 29 입력하면 모든 문서에서 29-로 시작하는 시트가 선택됨 (감지된 prefix는 자동 칩 버튼으로 표시)
    • 이름 키워드 — 예: 구조, 평면, 1F 같은 단어가 시트 이름에 들어간 시트 선택
    • 둘 다 켜면 OR 결합 — 표준을 어긴 시트도 키워드로 구제
  3. 미리보기에서 매칭 수 확인 (누락 의심 시 ⚠ 경고)
  4. 덮어쓰기 또는 추가 적용 방식 고른 뒤 [적용]

💡 이럴 때 쓰세요

  • 발주처가 PDF·DWG 둘 다 달라고 할 때 — 한 번에 끝, 파일명도 짝지어짐
  • "구조 도면만 뽑아주세요" 같은 카테고리 요청 — 동기화 prefix 한 번이면 수십 개 빌딩 통째로 처리
  • 매주 똑같이 반복하는 추출 작업 — 처음 한 번만 프리셋 저장하면 다음부터 클릭 3~4번
  • PDF·DWG를 단위별로 폴더 정리하고 싶을 때 — 자동 하위폴더 옵션이 알아서 분류

추천 워크플로우 (가장 빠른 순서)

  1. [프리셋 불러오기] → 문서 · 설정 묶음 복원
  2. [시트 로드]
  3. [동기화...] → prefix 29 (구조) 또는 키워드 입력 → [적용]
  4. [내보내기]

→ 클릭 4번으로 수십 개 빌딩 처리.

백업 파일과 링크 문서는 자동 처리

  • .0001.rvt, _backup, 백업 폴더는 알아서 제외
  • 링크로 불려온 파일은 임시 복사본으로 우회해서 안전하게 변환

🔍 UI 미리보기

Sheet Export — PDF/DWG 일괄 내보내기
출력 형식:PDFDWG→ 동일 베이스명 보장
프리셋 불러오기프리셋 저장열린 문서파일폴더삭제
시트 — 다단 카드
29-101구조평면 1F
29-102구조평면 2F
26-101건축평면 1F
29-201구조단면 A
26-102건축평면 2F
29-301구조상세 A
상위 폴더:I:\06_Drawings\프로젝트A자동 PDF/, DWG/
파일명:{문서명}_{시트번호}-{시트이름}문서명시트번호
Developed by Yoon Dream닫기 시트 로드 내보내기
🔧 개발자 정보 (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로 한꺼번에 변환

🖱 쓰는 법

  1. YoonDream 탭 → Admin 패널 → NWC Batch Export 버튼 클릭
  2. 모드 드롭다운에서 추출 방식 선택
    • 빠름 — 오늘 수정분만 (일반적인 일일 작업)
    • 전체 (초기 세팅 · 주간 전체 리프레시)
  3. 프로젝트 사이트별 카드에서 추출할 대상 체크
  4. 필요 시 🔄 경로 재설정 버튼으로 원본/서버 경로 갱신
  5. 🚀 작업 시작 클릭 → 파일 순차 처리

📂 멀티 사이트 구조

도구는 여러 프로젝트 폴더를 동시에 관리합니다. 각 프로젝트는 사이드바 카드로 구분되고, 카드마다 총 파일 수오늘 수정된 파일 수 뱃지가 표시되어 어느 폴더에 오늘 작업분이 있는지 한눈에 확인 가능합니다. 프로젝트 이름(SITE · MCS · BBU 등)은 폴더 구조에 맞춰 자유롭게 설정할 수 있습니다.

💡 이럴 때 쓰세요

  • 매일 아침 전날 수정된 파일만 Navisworks에 업데이트하고 싶을 때 — "빠름" 모드 한 방
  • 주간 통합 검토 전 전체 파일 재생성이 필요할 때 — "전체" 모드로 한 번에
  • 프로젝트가 여러 개이고 각각 다른 폴더에 저장되어야 할 때 — 프로젝트별 카드로 동시 관리

링크로 로드된 파일은 자동으로 임시 폴더에 복사됩니다

Revit Link로 불려오는 파일은 직접 열면 NWC 변환이 실패합니다. 이 도구는 링크 파일을 자동으로 임시 복사하여 안전하게 처리하니 신경 안 써도 됩니다.

🔍 UI 미리보기

NWC 일괄 추출 및 서버 동기화
모드:빠름 — 오늘 수정분만🔄 경로 재설정
A Building-A
📂 D:\2024_Project\Revit\
총 15 오늘 3
B Building-B
📂 D:\2024_Project\Revit\
총 12 오늘 2
Developed by Yoon Dream닫기 🚀 작업 시작
🔧 개발자 정보 (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로 일괄 추출

🖱 쓰는 법

  1. YoonDream 탭 → Admin 패널 → Schedule Batch Export 버튼 클릭
  2. 기준 문서 선택 — 복사해 갈 일람표들이 있는 .rvt
  3. 복사할 일람표 체크
  4. 대상 문서 추가 — 같은 일람표를 씌울 .rvt 파일들 넣기
  5. 분야 코드 필터 선택 (AR · ST · ME 등) — 필요할 때만
  6. 실행 클릭 → 각 대상에 일람표 복사 + CSV 추출

💡 이럴 때 쓰세요

  • 같은 물량 집계표 양식을 50개 파일 모두에 붙여넣고 CSV로 뽑아야 할 때
  • 기준 문서에서 관리하는 검수용 일람표를 팀원 파일에 일괄 배포할 때
  • 분야별로 다른 일람표 패턴이 있을 때 — AR/ST/ME 필터로 분야 파일에만 해당 일람표 배포

복사 중 경고는 자동으로 삼켜집니다

일람표 복사 중 흔히 나오는 "이미 동일 이름이 있습니다" 같은 비치명적 경고는 도구가 자동으로 처리하므로 대화상자 클릭할 필요 없습니다.

🔍 UI 미리보기

Schedule Batch Export
📄 기준 문서
파일 선택열린 문서STR_Master_Schedule.rvt
복사할 일람표3개 선택
물량 집계 - 콘크리트
Door Schedule
Wall Finish Schedule
Room Area Summary
📁 대상 문서
폴더 선택파일 추가
STR_Building-A.rvt
STR_Building-B.rvt
STR_Building-C.rvt
분야:ALLARSTMEEL
Developed by Yoon Dream닫기 실행
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Admin.panel/schedulebatchexport.pushbutton/

워크플로우

  1. 기준 문서의 ViewSchedule 수집
  2. 사용자가 복사할 일람표 선택
  3. ElementTransformUtils.CopyElements()로 대상 문서에 일람표 복사
  4. 복사된 일람표에서 CSV 추출 (codecs 인코딩 처리)

분야 코드 필터링

AR, MR, ST, EL, ME, FP, PL, COCO, BIM, ALL

경고 처리

WarningSwallower(IFailuresPreprocessor) — 복사 시 발생하는 비치명적 경고 자동 무시.


시트 목록 내보내기

여러 Revit 문서의 시트 번호 + 이름을 텍스트 파일로 뽑기

🖱 쓰는 법

  1. YoonDream 탭 → Admin 패널 → 시트 목록 내보내기 버튼 클릭
  2. 대상 문서 선택 (열린 문서 · 파일 · 폴더)
  3. 내보내기 클릭 → 지정 위치에 텍스트 파일 생성

💡 이럴 때 쓰세요

  • 시트 번호/이름 리스트를 엑셀·워드에 붙여넣을 때 — Revit을 하나씩 열 필요 없음
  • 발주처 제출용 도면 리스트 만들 때 — 여러 파일의 시트를 한 파일로 통합
  • 도면 목록 검수할 때 — 누락 시트 비교를 위해 리스트 뽑기

이미 열린 문서는 자동 감지

체크한 파일이 이미 Revit에 열려있으면 다시 열지 않고 그 참조를 그대로 사용하므로 작업이 빨라지고 중복 열기 오류가 없습니다.

🔍 UI 미리보기

시트 목록 내보내기
열린 문서파일 추가폴더 추가3개
열림STR_Building-A.rvt시트 42개
파일STR_Building-B.rvt시트 38개
파일STR_Building-C.rvt시트 29개
출력 파일:C:\Documents\시트목록_2026-04-22.txt
Developed by Yoon Dream닫기 내보내기
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Admin.panel/export_sheet_list.pushbutton/

핵심 로직

  • FilteredElementCollectorViewSheet 수집
  • System.IO.StreamWriter + System.Text.Encoding으로 파일 출력
  • 이미 열린 문서는 경로 + 중앙파일 경로 양쪽으로 감지하여 중복 열기 방지