콘텐츠로 이동

Family QC 스위트

패밀리 품질 관리를 3단계 파이프라인으로 수행합니다:

카탈로그 수집 → 네이밍 검수 → 관리자 비교 → 엑셀 리포트


Family Catalog Batch QC

여러 RVT 파일의 패밀리/타입을 모아 네이밍 규칙 위반을 엑셀로 리포트

🖱 쓰는 법

  1. YoonDream 탭 → Admin 패널 → Family Catalog Batch QC 버튼 클릭
  2. 검수할 .rvt 파일 추가 (파일 · 폴더 단위)
  3. 실행 클릭 → 각 파일의 실제 사용 중인 패밀리/타입 수집
  4. 완료 후 엑셀 리포트 자동 열림
    • 파일별 시트 — 해당 파일의 모든 위반 내역
    • 요약 시트 — 전체 파일 집계

💡 이럴 때 쓰세요

  • 프로젝트 전체 50개 파일에서 네이밍 규칙 어긴 타입이 몇 개인지 확인하고 싶을 때
  • 실제 사용 중인 타입만 검수하고 싶을 때 — 배치되지 않은 타입은 노이즈로 제외
  • 주간 품질 리포트 만들 때 — 엑셀 요약 시트로 주차별 추이 추적 가능

카탈로그와 차이점

이 도구는 실제 배치된 타입만 검수합니다. 프로젝트에 존재하지만 쓰이지 않는 타입은 무시하므로 "정리된 파일"에서 결과가 정확합니다.

🔍 UI 미리보기

Family Catalog Batch QC
파일 추가폴더 추가제거초기화5개
STR_Building-A.rvt패밀리 89개
STR_Building-B.rvt패밀리 76개
ARC_Building-A.rvt패밀리 124개
ARC_Building-B.rvt패밀리 112개
MEP_Building-A.rvt패밀리 198개
💡 실제 배치된(instanced) 타입만 검수 · 완료 시 엑셀 리포트 자동 열림
Developed by Yoon Dream닫기 실행
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Admin.panel/family_catalog_batch.pushbutton/

수집 방식: 인스턴스 기반

실제로 배치된(instanced) 타입만 수집:

collector = FilteredElementCollector(doc) \
    .WhereElementIsNotElementType()  # 인스턴스만
  • CategoryType.Model 필터로 모델 카테고리만 대상
  • QC_CONFIG.EXCLUDED_CATEGORY_NAMES로 제외 카테고리 설정
  • 시스템 패밀리 여부 자동 판별 (is_system_family())

네이밍 검수 함수 (yoon_qc_utils 라이브러리)

함수 검증 대상
validate_family_name() 패밀리 이름 규칙
validate_type_name() 타입 이름 규칙
detect_dimension_format() 치수 포맷 감지

출력

  • 파일별 엑셀 시트 + 요약 시트
  • ExcelWrapper (COM Interop 기반)

패밀리 카탈로그

현재 문서의 모든 패밀리/타입을 카테고리별로 정리 + 네이밍 검증

🖱 쓰는 법

  1. 검수하려는 Revit 문서를 연 상태에서
  2. YoonDream 탭 → Admin 패널 → 패밀리 카탈로그 버튼 클릭
  3. 결과 엑셀이 자동으로 생성 · 열림

💡 이럴 때 쓰세요

  • 한 프로젝트 내 전체 패밀리 재고 파악이 필요할 때 — 배치 여부와 무관하게 전수 조사
  • 불필요하게 임포트된 패밀리 정리 대상을 파악할 때
  • 시스템 패밀리까지 포함한 목록이 필요할 때 (Batch QC는 제외)

Batch QC와 차이점

이 도구는 프로젝트에 있는 모든 타입을 수집합니다. 배치 안 된 타입까지 포함됩니다.

🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Admin.panel/family_catalog_qc.pushbutton/

수집 방식: 전체 타입

collector = FilteredElementCollector(doc) \
    .WhereElementIsElementType()  # 모든 타입

패밀리 이름 해석 (다중 폴백)

  1. elem_type.FamilyName
  2. BuiltInParameter.ALL_MODEL_FAMILY_NAME
  3. "(시스템)" 또는 "(알 수 없음)"

타입 이름 해석

  1. BuiltInParameter.SYMBOL_NAME_PARAM
  2. elem_type.Name (.NET property)

관리자검토 (FamilyQC Admin)

기준 파일과 여러 비교 파일을 대조하여 비표준 패밀리·파라미터 차이를 한눈에

🖱 쓰는 법

  1. YoonDream 탭 → Admin 패널 → 관리자검토 버튼 클릭
  2. 📄 기준 파일 (Standard) 지정 — "이게 표준이다" 할 .rvt
  3. 📁 비교 파일 추가 — 검수할 실제 작업 파일들
  4. 필요 시 "파라미터 값 비교 포함" 체크 (더 꼼꼼한 검사, 시간 더 걸림)
  5. ▶ 비교 실행 클릭 → 엑셀 리포트 자동 생성

📂 결과 엑셀 구성

시트 내용
요약 파일별 비표준 수 + 파라미터 차이 타입 수 한눈에
{파일명} 카테고리 → 패밀리 → 타입 별 상세
{파일명}_param 파라미터 값 차이 상세 (값 비교 ON 시만)

💡 이럴 때 쓰세요

  • 프로젝트 50개 파일이 표준 라이브러리를 제대로 따르는지 일괄 점검할 때
  • "사내 표준 파일과 다른 타입을 쓴 팀원이 누군지 찾아라" 주문 받았을 때
  • 파라미터 값(두께·재질·등급)까지 일일이 맞는지 대조해야 할 때 → 체크박스 ON
  • 파일 100개짜리 일괄 검수 리포트 요구될 때 — 하나씩 열 필요 없음

기준과 비교는 수집 범위가 다릅니다

  • 기준 파일: 모든 타입 수집 (배치 무관) → "이게 있을 수 있는 것들"
  • 비교 파일: 실제 배치된 타입만 → "실제로 뭘 썼나"

이유: 기준엔 표준으로 준비된 것 전부를, 비교엔 실제 사용분만 대조해 노이즈 제거.

🔍 UI 미리보기

Admin Family QC
📄 기준 파일 (Standard)
📂 찾아보기열린 문서STR_Standard_2024.rvt
📁 비교 파일4개
+ 파일+ 폴더+ 열린 문서− 제거초기화
STR_Building-A.rvt\\Server\BIM\
STR_Building-B.rvt\\Server\BIM\
STR_Building-C.rvt\\Server\BIM\
STR_Utility.rvt\\Server\BIM\
파라미터 값 비교 포함
Developed by Yoon Dream취소 ▶ 비교 실행
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Admin.panel/familyqc_admin.pushbutton/ — script.py, AdminFamilyQCWindow.xaml
  • 공용 라이브러리: lib/yoon_param_compare.py (ParamSnapshot, ParamDiff, TypeDiffResult)

비교 로직 — 수집 범위 차이

항목 기준 파일 비교 파일
수집 범위 모든 타입 (배치 무관) 인스턴스 타입만 (실제 사용분)
의미 "이게 표준이다" "실제로 뭘 썼나"

검출 항목

  1. 비표준 패밀리 — 기준에 없지만 비교 파일에 있는 패밀리
  2. 파라미터 값 차이 — 동일 이름 타입의 파라미터 값 불일치

파라미터 비교 (선택적)

"파라미터 값 비교 포함" 체크박스 ON 시 활성화:

타입 비교 방식
Double 0.001 허용오차
String None == "" 동등 처리
Integer 정확 일치
ElementId 이름으로 비교 (ID는 파일마다 다르므로)

제외 대상

  • ReadOnly 파라미터 기본 제외
  • SKIP_PARAM_NAMES: Type Name, Family Name 등 식별자

엑셀 COM 연동

excelType = System.Type.GetTypeFromProgID("Excel.Application")
app = System.Activator.CreateInstance(excelType)
# BindingFlags.SetProperty로 속성 설정

성능 모드

  • 체크박스 OFF → 기존 비표준 검사만 (성능·동작 100% 동일)
  • 체크박스 ON → 파라미터 값 전수 비교 추가