콘텐츠로 이동

파일 관리

Quick Open

여러 RVT 파일을 한 번에 열기 — 중앙파일은 로컬 복사본으로 자동 변환

🖱 쓰는 법

  1. YoonDream 탭 → Admin 패널 → Quick Open 버튼 클릭
  2. 열고 싶은 파일을 목록에 추가
    • 📂 파일 추가 — RVT 파일 하나씩 선택
    • 📁 폴더 추가 — 폴더 통째로 추가 (하위 RVT 자동 수집)
    • 프리셋 불러오기 — 전에 저장해둔 목록을 한 번에 로드
  3. 체크박스로 실제 열 파일만 선택 (체크 해제한 파일은 열리지 않음)
  4. 열기 옵션 드롭다운에서 모드 선택 (아래 3가지)
  5. 열기 버튼 클릭 → Revit이 순차적으로 파일을 엽니다

📂 열기 옵션 (3가지)

옵션 언제 쓰나요?
일반 열기 (로컬 복사본) 중앙파일을 내 PC에 로컬 복사본으로 떠서 작업할 때. 보통 이걸 씁니다.
디태치 (워크셋 유지) 중앙파일에서 분리된 독립 파일로 열고 싶을 때. 워크셋 구조는 그대로 남음.
디태치 (워크셋 삭제) 완전히 분리하면서 워크셋까지 없애고 싶을 때 (예: 클라이언트 납품용 클린 파일).

💡 이럴 때 쓰세요

  • 매일 같은 5~10개 파일을 여는 루틴이 있을 때 — 프리셋 한 번 저장해두면 이후엔 한 번에 로드
  • 중앙파일을 매번 손으로 "새 로컬 파일" 옵션 체크하며 여는 게 번거로울 때 — 자동으로 ~/RevitLocal/ 안에 로컬 복사본을 만들어 열어줍니다
  • 백업 파일(.0001.rvt, _backup 등)은 자동으로 목록에서 빠짐 — 실수로 백업을 열 일 없음
  • 납품 전에 워크셋을 완전히 없앤 디태치 파일이 필요할 때 — "디태치 (워크셋 삭제)" 옵션 한 번에 해결

프리셋 활용 팁

프로젝트마다 "구조 검토용", "MEP 조정용" 등 용도별 프리셋을 만들어두면 파일 여는 시간이 거의 0초가 됩니다.

🔍 UI 미리보기

Quick Open3 files
📂 파일 추가📁 폴더 추가프리셋 불러오기프리셋 저장
파일명경로크기
STR_Building-A.rvtD:\Project\BIM\Structure\245MB
STR_Building-B.rvtD:\Project\BIM\Structure\189MB
ARC_Building-A.rvtD:\Project\BIM\Architecture\312MB
MEP_Building-A.rvtD:\Project\BIM\MEP\156MB
열기 옵션:일반 열기 (로컬 복사본)전체 선택전체 해제
Developed by Yoon Dream닫기 열기
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Admin.panel/quick_open.pushbutton/ — script.py, ui.xaml, presets.json

핵심 Revit API

API 용도
BasicFileInfo.Extract() 파일 메타데이터 (워크셰어링 여부 판별)
WorksharingUtils.CreateNewLocal() 중앙파일 → 로컬 복사본 생성
uiapp.OpenAndActivateDocument() UI에 보이도록 열기 (app.OpenDocumentFile은 UI에 안 보임)
ModelPathUtils 경로 문자열 ↔ ModelPath 변환

DetachOption 매핑

UI 옵션 DetachOption 값
일반 열기 DoNotDetach
디태치 (워크셋 유지) DetachAndPreserveWorksets
디태치 (워크셋 삭제) DetachAndDiscardWorksets

로컬 복사본 경로 규칙

~/RevitLocal/{상위폴더명}_{파일명}_{Revit유저이름}.rvt
  • 상위 폴더명을 파일명에 포함 → 같은 이름 파일도 충돌 없이 공존
  • Revit 유저 이름을 suffix로 포함 → 다중 사용자 환경 대응

백업 파일 필터링 규칙

  • 정규식 \.[0-9]{4}\.rvt 매칭 (예: Project.0001.rvt)
  • 키워드 포함 시 제외: backup, _bak, 백업
  • UI 체크박스로 "백업 포함" 선택 시 필터 해제

에러 기록: ERROR/quick_open_errors.md (2건)


Quick Close

열린 문서별로 동기화 · 저장 · 저장안함 · 건너뛰기를 각각 선택해 한 번에 닫기

🖱 쓰는 법

  1. YoonDream 탭 → Admin 패널 → Quick Close 버튼 클릭
  2. 현재 열려 있는 모든 문서가 목록에 자동으로 나옵니다
    • 각 문서 옆에 유형 뱃지로 중앙파일 / 워크셰어 / 패밀리 / 로컬 표시
    • "수정됨" 표시는 저장/동기화가 안 된 변경사항이 있다는 뜻
  3. 각 문서마다 오른쪽 드롭다운에서 원하는 동작을 선택
    • 기본값은 유형에 따라 자동 설정됩니다 (워크셰어 → 동기화, 로컬/패밀리 → 저장)
  4. 체크박스로 실제 처리할 문서만 남김 (체크 해제 시 건너뜀)
  5. 닫기 실행 버튼 한 번으로 모든 문서가 각자 지정된 방식대로 처리됨
  6. Revit을 완전히 종료하고 싶다면 상단 "Revit 프로그램도 종료" 체크박스 같이 켜기

📂 4가지 동작 (드롭다운 옵션)

옵션 언제 쓰나요?
동기화 후 닫기 중앙파일 작업 후 동료에게 변경사항을 올리며 닫을 때. 가장 안전한 종료 방식.
저장 후 닫기 로컬 파일 · 패밀리 파일처럼 중앙파일이 아닌 것을 저장만 하고 닫을 때.
저장 안 하고 닫기 실수로 만진 파일, 뷰만 둘러본 파일처럼 변경사항을 버리고 싶을 때.
건너뛰기 이 파일은 닫지 않고 그대로 열어두고 싶을 때. 체크를 풀지 않고도 제외 가능.

🔁 모든 행을 한 번에 바꾸기

상단의 "일괄 변경..." 드롭다운을 사용하면 모든 행의 동작을 한 번에 같은 값으로 설정할 수 있습니다.

  • 퇴근 전 "전부 동기화 후 닫기"를 선택 → 모든 행이 동기화로 바뀜
  • 리뷰만 하고 모두 닫을 거면 "전부 저장 안 하고 닫기" 한 번으로 해결
  • 개별로 예외가 있으면 일괄 변경 후에 그 행만 다시 드롭다운으로 수정

💡 이럴 때 쓰세요

  • 중앙파일 5개 + 패밀리 2개가 섞여 있을 때 — 중앙파일은 동기화, 패밀리는 저장만… 처럼 파일별로 다른 처리가 필요한 상황
  • 퇴근 전 10개 넘는 문서를 한 번에 정리하고 싶을 때 — 하나씩 닫지 않고 일괄 종료
  • "이 파일만 열어두고 나머지는 닫고 싶어" — 해당 파일만 "건너뛰기"로 지정
  • 실수로 만진 파일을 되돌리고 싶을 때 — "저장 안 하고 닫기"로 변경사항 폐기
  • Revit 자체를 종료하려는데 열린 문서 정리부터 해야 할 때 — "Revit 종료" 옵션 한 번에 처리

유형 뱃지 읽는 법

  • 🟡 중앙파일 — 현재 직접 편집 중인 중앙파일 (로컬 사본이 아닌)
  • 워크셰어 — 중앙파일에서 내려온 로컬 복사본
  • 패밀리.rfa 패밀리 편집 문서
  • 로컬 — 워크셰어링을 안 쓰는 일반 .rvt 파일

저장 안 하고 닫기 경고

"수정됨" 표시가 있는 문서에 저장 안 하고 닫기를 지정하면 실행 직전에 경고창이 뜹니다. 변경사항이 완전히 버려지므로 신중히 선택하세요.

🔍 UI 미리보기

Quick Close4 docs
문서유형상태동작
STR_Building-A중앙파일동기화 후 닫기 ▾
STR_Building-B워크셰어수정됨동기화 후 닫기 ▾
Door_Type.rfa패밀리저장 후 닫기 ▾
Temp_Review로컬저장 안 하고 닫기 ▾
전체 선택전체 해제일괄 변경... ▾ Revit 프로그램도 종료
Developed by Yoon Dream취소 닫기 실행
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Admin.panel/quick_close.pushbutton/ — script.py, ui.xaml

동작 키 (per-item)

action_key 인덱스 동작 대상 유형 기본값
sync 0 SynchronizeWithCentral()Close(False) 워크셰어·중앙파일
save 1 Save()Close(False) 로컬·패밀리
nosave 2 Close(False) 직접 명시 선택 시만
skip 3 아무 동작 안 함 명시 선택 시만

DocItem 상태

DocItem._default_action_index()doc.IsWorkshared 여부로 초기 action_index 결정. UI ComboBox → action_index 양방향 동기화 (action_loaded / action_changed 핸들러).

문서 유형 판별 로직

central_path = doc.GetWorksharingCentralModelPath()
visible = ModelPathUtils.ConvertModelPathToUserVisiblePath(central_path)
is_central = (doc.PathName == visible)  # 직접 중앙파일 편집 중인지

활성 문서 처리

활성 문서는 doc.Close() 불가 → 저장/동기화만 수행 후 PostCommand()로 Revit 내부 닫기 명령 실행. Revit 종료 옵션 선택 시 PostableCommand.ExitRevit.

WPF 이벤트 초기화 순서 주의

<ComboBoxItem IsSelected="True"/>가 XAML 로드 중 SelectionChanged를 발동시킴 → _suppress_bulk_event 플래그는 반드시 forms.WPFWindow.__init__() 호출 이전에 초기화. 자세한 내용은 ERROR/wpf_combobox_isselected_xaml_load_error.md.

핵심 Revit API

API 용도
SynchronizeWithCentralOptions 동기화 옵션
RelinquishOptions(True) 워크셋 권한 전체 반납
TransactWithCentralOptions 중앙파일 트랜잭션
PostableCommand.Close / ExitRevit 활성 문서 닫기 / Revit 종료

단축키 할당 (선택)

Revit File → Options → User Interface → Keyboard Shortcuts에서 "Quick Close" 검색 → 원하는 조합 지정. pyRevit 측에서는 코드로 단축키 지정 불가.