콘텐츠로 이동

✅ QC Panel

품질 검토 도구 4개 (물량인스펙터 개발 진행 중)


패밀리검토 (Family QC)

표준 라이브러리 파일을 기준으로 현재 모델의 패밀리/타입을 전수 대조 + 3D 빨간색 시각화 + 엑셀 리포트

🖱 쓰는 법

  1. 검토 대상 문서를 엽니다
  2. YoonDream 탭 → QC 패널 → 패밀리검토 버튼 클릭
  3. 📂 찾아보기 로 기준이 될 표준 .rvt 지정
  4. 실행 클릭 → 자동 비교 + 3가지 요약 카운트 표시
    • 표준 준수 (초록) — 기준에 있는 패밀리 사용
    • 비표준 (빨강) — 기준에 없는 패밀리 (문제)
    • 기준 없음 (노랑) — 기준 파일에 대응 항목 부재
  5. 결과 리스트에서 비표준 항목 확인
  6. 하단 버튼으로 추가 작업
    • 📊 Excel — 엑셀 리포트 뽑기
    • 🔴 3D 격리 — 비표준 요소만 보이게
    • 검토 뷰 — 전용 3D 뷰 자동 생성

💡 이럴 때 쓰세요

  • 프로젝트 납품 전 표준 라이브러리 준수 여부 확인할 때
  • 팀원이 비표준 패밀리를 쓴 곳을 3D에서 한눈에 찾아내고 싶을 때
  • 감리 제출용 엑셀 리포트 필요할 때
  • 비표준 요소만 격리한 검토 뷰를 자동으로 만들어야 할 때

🔍 UI 미리보기

Family QC — 검토 결과
📂 찾아보기STR_Standard_2024.rvt
142
표준 준수
8
비표준
3
기준 없음
카테고리패밀리타입상태
구조 기둥UC_Column_Custom3비표준
구조 보H_Beam_Standard12통과
구조 기초Pad_Foundation8통과
📊 Excel🔴 3D 격리검토 뷰
Developed by Yoon Dream닫기
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • QC.panel/familyqc.pushbutton/

검토 프로세스

  1. 기준 파일 선택 — Detach로 열어 전체 패밀리/타입 수집
  2. 현재 문서 스캔 — 모든 인스턴스 수집
  3. 매칭 — 패밀리 이름 + 타입 이름으로 기준 대조
  4. 판정 — 기준에 없는 패밀리 = 비표준

시각화

기능 설명
3D 빨간색 강조 OverrideGraphicSettings로 비표준 요소 빨간색 처리
검토 뷰 자동 생성 View3D.CreateIsometric()으로 전용 3D 뷰 생성
비표준 격리 비표준 요소만 보이도록 격리

엑셀 리포트 (ExcelWrapper COM Interop)

excelType = System.Type.GetTypeFromProgID("Excel.Application")
app = System.Activator.CreateInstance(excelType)

출력 시트

시트 내용
요약 파일별 통과/비표준/기준없음 카운트
카테고리별 패밀리→타입 상세 목록

패밀리 사용검색

고른 패밀리가 어느 파일에 실제로 놓여 있는지 여러 파일을 한 번에 확인 — 파일에 들어만 있는 것과 실제로 모델에 놓인 것을 구분해 줍니다

🖱 쓰는 법

  1. YoonDream 탭 → QC 패널 → 패밀리 사용검색 버튼 클릭
  2. 찾을 패밀리를 고릅니다 — 세 가지 방법 중 편한 것으로
    • 기준 파일에서 고르기 — 파일 하나를 열어 그 안의 목록에서 선택
    • 열린 문서에서 고르기 — 지금 열어 둔 파일에서 선택
    • 이름 직접 입력 — 이름을 알고 있을 때. 여러 개는 세미콜론(;)으로 구분
  3. 필요하면 타입까지 골라서 검사에 체크 — 목록이 타입 단위로 펼쳐집니다
  4. 찾아볼 파일을 담습니다 — 폴더 추가 · 파일 추가 · 열린 문서
  5. 검사 시작 → 바탕화면에 결과 파일이 저장되고 자동으로 열립니다

📂 결과 보는 법

결과 첫 장이 판정표입니다. 가로가 찾는 패밀리, 세로가 파일입니다.

표시
O (초록) 그 파일에 실제로 놓여 있음
(노랑) 이름은 있는데 놓인 게 하나도 없음
X (회색) 그 이름 자체가 파일에 없음
- (빨강) 파일을 열지 못함 (사유는 비고 칸에)

둘째 장 상세에는 판정의 근거가 들어갑니다 — 파일 안에서 찾은 실제 이름, 놓인 개수, 타입별 개수. O 라고만 하고 끝내지 않고, 몇 개가 어느 타입으로 놓였는지까지 보여 줍니다.

💡 이럴 때 쓰세요

  • 패밀리를 바꾸거나 지워야 할 때 — 어느 동에 영향이 가는지 먼저 확인
  • 표준 패밀리가 각 동에 제대로 적용됐는지 한 장으로 대조할 때
  • 파일에 들어만 있고 안 쓰는 패밀리 정리할 때 (△ 로 뜨는 것들)
  • 특정 벽·바닥 타입을 실제로 쓴 동이 어디인지 찾을 때

벽·바닥 같은 시스템 패밀리도 됩니다

문·창·기둥처럼 불러오는 패밀리뿐 아니라 벽·바닥·지붕·천장 같은 시스템 패밀리도 같이 나옵니다. 목록에서 [벽] 기본 벽 처럼 카테고리와 함께 보입니다.

패밀리 단위와 타입 단위를 섞어도 됩니다

A패밀리는 통째로, B패밀리는 특정 타입만 처럼 한 번에 담아서 검사할 수 있습니다. 담아 둔 항목은 체크 상자를 바꿔도 그대로 남습니다.

타입으로 찾을 때 주의

타입까지 지정하면 그 이름의 타입이 없는 파일은 X 로 나옵니다. 패밀리는 들어 있어도 마찬가지입니다. 패밀리가 있는지만 보려면 패밀리 단위로 담으세요.

파일은 건드리지 않습니다

읽기만 하고 아무것도 고치지 않습니다. 큰 파일은 목록이 뜨기까지 시간이 조금 걸립니다.

열어 둔 파일은 그 화면 그대로 읽습니다

이미 열어 둔 파일은 다시 열지 않고 그 문서를 그대로 읽습니다. 작업 중인 파일이 닫히지 않습니다. 공유 모델(중앙파일)도 마찬가지입니다 — 폴더에서 중앙파일을 담았는데 내 컴퓨터에 그 파일을 열어 둔 상태면, 열어 둔 쪽에서 읽습니다. 목록에 초록색 열림 표시로 나오고, 결과 비고 칸에도 남습니다. 중앙파일과 내 파일을 둘 다 담으면 같은 모델이므로 하나로 합쳐서 검사합니다.

🔍 UI 미리보기

패밀리 사용검색 — 어디에 놓여 있나
🗂 기준 파일에서 고르기🪟 열린 문서에서✏ 이름 직접 입력3개 (타입 1)
타입까지 골라서 검사
패밀리 · 기본 벽 타입 · W-COL : 300 패밀리 · 출입문
찾아볼 파일
열림COCO_A동.rvt
폴더COCO_B동.rvt
폴더COCO_C동.rvt
결과 판정표
파일기본 벽W-COL : 300출입문
COCO_A동.rvtOOO
COCO_B동.rvtOO
COCO_C동.rvtOXX
Developed by Yoon Dream닫기 🚀 검사 시작
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • QC.panel/family_usage_finder.pushbutton/
  • 함정 기록: ERROR/family_usage_finder_notes.md
  • 계획 문서: dev/active/family-usage-finder/

판정 규칙

표기 패밀리 단위 타입 단위
O 어느 타입이든 인스턴스 1개 이상 그 타입의 인스턴스 1개 이상
존재하나 인스턴스 0개 타입은 존재하나 인스턴스 0개
X 그 이름의 패밀리 없음 그 이름의 타입 없음 (패밀리만 있어도 X)

두 경로를 모두 훑는다 — 시스템 패밀리는 Family 요소가 없다

# (1) 로드 가능 패밀리
for fam in FilteredElementCollector(doc).OfClass(Family): ...

# (2) 시스템 패밀리 — FamilySymbol 이 아닌 ElementType
for et in FilteredElementCollector(doc).WhereElementIsElementType():
    if isinstance(et, FamilySymbol): continue
    fam_name = et.FamilyName          # '기본 벽', 'Floor' …

인스턴스 카운트 — 전체 스윕 회피

대상 방법
로드 가능 FamilyInstanceFilter(doc, symbolId) — Revit 내부 인덱스 사용
시스템 ElementMulticategoryFilter 로 카테고리 한정 후 GetTypeId() 대조
폴백 필터 실패 시 그 문서 1회 전체 순회로 typeId → 개수 맵 구축

주의 사항

  • 파일 열기는 OpenAllWorksets 필수. CloseAllWorksets 로 열면 닫힌 워크셋의 요소가 메모리에 없어 개수가 조용히 적게 나온다.
  • 이름 비교는 정규화(대문자화 + 영숫자만) — 파일마다 공백·하이픈 표기 차이 흡수.
  • 읽기 전용이라 워크셰어링 점유가 생기지 않는다 (relinquish_all 불필요).
  • 진행 중 취소하면 결과가 일부 파일뿐 — 알림·엑셀 제목·파일명 세 곳에 표시된다.

뷰 템플릿 비교

기준 뷰 템플릿과 다른 템플릿들의 설정 차이를 항목별로 상세 분석

🖱 쓰는 법

  1. YoonDream 탭 → QC 패널 → 뷰 템플릿 비교 버튼 클릭
  2. 기준 템플릿 선택
  3. 비교 대상 템플릿 다중 선택
  4. 실행 클릭 → 차이점 하이라이트 리포트

📂 비교 항목

항목 설명
가시성/그래픽 카테고리별 표시/숨김, 선 두께, 색상
뷰 필터 적용된 필터 목록 + 필터별 설정
파라미터 오버라이드 뷰 파라미터 값 차이

💡 이럴 때 쓰세요

  • 팀원이 만든 뷰 템플릿이 표준과 얼마나 다른지 확인할 때
  • 템플릿 변경 이력 검토 필요할 때
  • 동일해야 할 템플릿 3~5개 사이 미세한 차이 찾아낼 때

파라미터 이름 자동 한국어 변환

Revit 내부 파라미터 이름이 영문으로 되어 있어도 LabelUtils로 한국어/영어 양쪽 표시됩니다.

🔍 UI 미리보기

뷰 템플릿 비교
기준 템플릿:Structural_Plan_Standard
비교 대상3개 선택
Structural_Plan_Variant_A5 차이
Structural_Plan_Variant_B12 차이
Structural_Plan_Legacy23 차이
차이점 상세
템플릿항목기준 값비교 값
Variant_ADetail LevelFineMedium
Variant_A뷰 필터Filter-A ONFilter-A OFF
Variant_BScale1:1001:50
Developed by Yoon Dream닫기 실행
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • QC.panel/view_template_compare.pushbutton/

워크플로우

  1. 기준 템플릿 선택
  2. 비교 대상 템플릿 다중 선택
  3. ViewType + StorageType + BuiltInParameter로 각 설정 추출
  4. 차이점만 하이라이트
  5. LabelUtils로 파라미터 이름 한국어/영어 표시

뷰 타입 한국어 라벨

safe_name() + param_display() 함수로 Revit 내부 이름을 사용자 친화적으로 변환.


물량인스펙터 진행중

🚧 개발 진행 중

재질 → 카테고리 → 패밀리 → 타입 4단계 트리로 모델의 물량(부피/면적)을 계층 탐색

🖱 쓰는 법 (개발 중)

  1. YoonDream 탭 → QC 패널 → 물량인스펙터 버튼 클릭
  2. 부피 또는 면적 탭 선택
  3. 4단계 트리에서 관심 항목 확장
  4. 원하는 노드 선택 → 격리 또는 색상 강조

📂 주요 기능

기능 설명
4단계 트리 Material → Category → Family → Type 계층 탐색
부피 탭 m³ 단위 물량 표시
면적 탭 m² 단위 면적 표시
격리 선택 요소를 3D 뷰에서 격리
색상 강조 선택 요소에 색상 오버라이드
재질 필터 팝업에서 재질 선택 → 해당 요소만 표시

💡 이럴 때 쓰게 될 예정

  • 재질별 총 물량 빠른 집계 (예: "콘크리트 전체 m³")
  • 특정 타입만 뷰에서 격리해 검토할 때
  • Quick Physical Inspection — 물량을 수식/일람표 없이 빠르게 확인
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • QC.panel/QuantityInspector.pushbutton/

UI 프레임워크

Windows Forms 기반 (WPF가 아닌):

  • TreeView — 4단계 계층 트리
  • TabControl — 부피/면적 전환
  • CheckedListBox — 재질 선택 팝업

설정 저장

ConfigManagerAppData에 JSON으로 설정 저장/로드.