콘텐츠로 이동

🔗 독립 도구

Revit 없이 독립 실행되는 도구 (Navisworks · AutoCAD 연동)


NWD 합치기 (Navisworks Merge)

여러 NWC 파일을 선택해 하나의 NWD 파일로 자동 합치기

🖱 쓰는 법

  1. 바탕화면 또는 탐색기에서 07_nwd_merge.bat 더블클릭
  2. 파일 선택 창이 뜨면 합칠 NWC 파일들을 선택
    • Shift+클릭으로 범위 선택 지원
  3. 저장 경로 지정 (최종 .nwd 파일 저장 위치)
  4. 실행 클릭 → Navisworks가 자동으로 열려 합치기 + 저장 진행

💡 이럴 때 쓰세요

  • 매일 분야별 NWC 파일들(건축·구조·MEP)을 통합 NWD로 납품해야 할 때
  • Navisworks Manage를 일일이 열어 수동 Append 하기 번거로울 때
  • Revit 없이 독립 실행 가능한 통합 도구 필요할 때

Shift+클릭 범위 선택

파일 리스트에서 시작 파일을 클릭 → Shift+끝 파일 클릭으로 중간 전체 선택. 수십 개도 빠르게.

🔍 UI 미리보기

NWD 합치기 (Navisworks Merge)4 files
📂 NWC 파일 추가선택 제거전체 해제
NWC 파일크기
ARC_Building-A.nwc82MB
STR_Building-A.nwc64MB
MEP_Building-A.nwc48MB
SITE_Building-A.nwc12MB
저장 경로:D:\Navisworks\Merged\Building-A_Combined.nwd📂 찾아보기
Developed by Yoon Dream닫기 🚀 합치기 실행
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • 02.Python/07_nwd_merge.py + 07_nwd_merge.bat

기술 아키텍처

Python (tkinter GUI) → subprocess → PowerShell (Add-Type .NET) → Navisworks Automation API

기술 스택

레이어 기술 역할
GUI Python tkinter 파일 선택 UI, Shift 범위 선택
Bridge PowerShell Add-Type .NET DLL 로드 + 호출
Engine Navisworks 2024 API AppendFile → SaveFile

핵심 설계 — 크로스 런타임 문제 해결

Python(CPython)에서 .NET DLL을 직접 호출할 수 없는 환경에서, PowerShell을 브릿지로 활용하여 Navisworks Automation API에 접근하는 아키텍처.

주의

  • Navisworks Manage 2024 필수
  • SaveFile 메서드 사용 (PublishFile 메서드는 존재하지 않음)

DWG Batch Compare (AutoCAD 도면 비교)

두 폴더의 동명 DWG 파일을 AutoCAD 2024에서 자동으로 비교(COMPARE) 상태로 일괄 열기

🖱 쓰는 법

  1. 09_dwg_batch_compare.bat 또는 DWG_Batch_Compare.exe 실행
  2. 폴더 A (기준) 선택 — 어제 도면이 있는 폴더 등
  3. 폴더 B (비교) 선택 — 오늘 도면이 있는 폴더 등
  4. 자동 매칭 프리뷰 확인
    • 흰색 — 파일명이 정확히 일치 (확실한 매칭)
    • 노란색 — 유사도 60% 이상 (추정 매칭, 예: section.dwgsections.dwg)
  5. 비교할 쌍을 체크박스로 선택
  6. (선택) 변경사항 레이어 생성 체크 — 전일 날짜 레이어(YYMMDD_변경사항, 빨강)로 자동 레이어 세팅
  7. 실행 클릭 → 새 AutoCAD 인스턴스가 뜨고 쌍마다 자동 비교

💡 이럴 때 쓰세요

  • 매일 어제 대비 오늘 도면 변경사항 확인해야 할 때
  • 수십 개 도면을 일일이 열어 COMPARE 실행하기 번거로울 때
  • 파일명이 살짝 바뀌어 있어도 자동으로 찾아 매칭해주길 바랄 때 (section ↔ sections)
  • Python 없이 EXE로 팀원에게 공유하고 싶을 때 (PyInstaller 패키징 제공)

유사 이름 자동 매칭

정확 매칭 후 남은 파일을 영숫자 정규화해서 60% 이상 유사하면 추정 매칭으로 제안합니다. location.dwglocation plan.dwg 같은 케이스도 자동.

변경사항 레이어 사용 시

AutoCAD 스크립트가 -LAYER M 명령으로 현재 레이어를 바꿉니다. 실행 후엔 빨간색 YYMMDD_변경사항 레이어가 활성 상태가 되므로 수정 내용이 자동으로 그 레이어로 들어갑니다.

🔍 UI 미리보기

DWG Batch Compare12 pairs
📂 폴더 A (기준, 어제 도면)
찾아보기D:\DWG\20260420\
📂 폴더 B (비교, 오늘 도면)
찾아보기D:\DWG\20260421\
매칭 프리뷰정확 9 추정 3
폴더 A폴더 B유사도
plan_1F.dwg=plan_1F.dwg100%
plan_2F.dwg=plan_2F.dwg100%
section.dwg~sections.dwg87%
location.dwg~location plan.dwg72%
변경사항 레이어 생성 (YYMMDD_변경사항, 빨강)
Developed by Yoon Dream취소 🚀 AutoCAD 비교 실행
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • 02.Python/09_dwg_batch_compare.py + 09_dwg_batch_compare.bat + dist/DWG_Batch_Compare.exe

기술 아키텍처

Python (tkinter GUI) → .scr 스크립트 생성 → acad.exe /b script.scr → AutoCAD 2024 COMPARE

기술 스택

레이어 기술 역할
GUI Python tkinter + ttk.Treeview 폴더 선택, 매칭 프리뷰, 체크박스 선택
Matching difflib.SequenceMatcher 정확 매칭 + 유사 추정 매칭
Script AutoCAD .scr (cp949 인코딩) OPEN/COMPARE/-LAYER 명령 시퀀스
Engine AutoCAD 2024 acad.exe /b 새 인스턴스에서 스크립트 자동 실행

핵심 설계 포인트

  • 유사 이름 매칭: difflib.SequenceMatcher로 정규화(영숫자만 추출) 비교, 60% 이상 시 추정 매칭
  • FILEDIA 0 트릭: AutoCAD 스크립트(.scr)에서 OPEN/COMPARE에 파일 경로를 직접 넘기려면 FILEDIA 0으로 파일 대화상자 비활성. 작업 후 FILEDIA 1로 복원
  • .scr 인코딩: cp949 (AutoCAD 한국어 로케일 대응)
  • 변경사항 레이어: 전일 YYMMDD_변경사항, 빨강 (ACI 1), -LAYER M 으로 현재 레이어 설정
  • PyInstaller onefile exe 패키징: Python 없이 공유 가능