콘텐츠로 이동

Grid / Level Manager

그리드와 레벨을 한 UI에서 이름 변경 · 높이 조정 · 신규 작성까지 통합 관리

탭 하나로 Grid / Level을 전환해 작업합니다. 네이밍 충돌 자동 방지, 실시간 프리뷰, 뷰 기반 기준점 클릭 작성 모두 지원.

🖱 쓰는 법

  1. YoonDream 탭 → Modeling 패널 → Grid/Level Manager 버튼 클릭
  2. 상단 탭에서 Grid 또는 Level 선택
  3. 모드 선택
    • 이름 변경 — 기존 요소 이름 일괄 변경
    • 작성 — 신규 Grid/Level 생성
  4. 모드별 세부 설정 (아래 참조)
  5. 적용 또는 작성 클릭

📝 이름 변경 모드

🖱 쓰는 법

  1. 모드를 이름 변경으로 선택
  2. 네이밍 규칙 설정
    • Prefix (접두사, 예: G-)
    • Type (숫자 or 문자)
    • Start (시작 값, 예: 1 또는 A)
    • Suffix (접미사, 예: -S)
  3. Grid인 경우 방향 필터 체크 (수직 / 수평 / 대각)
  4. 실시간 프리뷰 테이블에서 현재 이름 → 새 이름 확인
  5. 체크된 요소만 이름 변경 적용

💡 이럴 때 쓰세요

  • 프로젝트 중간에 그리드 네이밍 규칙이 바뀌어 일괄 변경 필요할 때
  • "A, B, C"를 "1, 2, 3"으로 바꾸고 기존 "1, 2, 3"은 "A, B, C"로 교차 변경하고 싶을 때 (중복 충돌 자동 해결)
  • 수직/수평 그리드만 골라서 한 규칙 적용할 때 — 방향 필터로 선택

중복 충돌은 자동으로 해결됩니다

Revit은 동일 이름을 허용하지 않아 단순 교차 변경이 어렵습니다. 이 도구는 2단계 임시 이름 전략을 써서 어떤 교차 변경도 충돌 없이 처리합니다.


📏 높이 조정 모드 (Level 전용)

🖱 쓰는 법

  1. 탭을 Level로 전환
  2. 모드를 높이 조정으로 선택
  3. 상대값 또는 절대값 선택
  4. 값 입력 (예: +300mm, 3000mm)
  5. 적용 클릭

📂 두 가지 조정 방식

모드 설명 예시
상대값 (+/-) 현재 높이에서 가감 +300mm → 모든 체크 레벨을 300mm 올림
절대값 특정 높이로 설정 3000mm → 체크 레벨 전부 3000mm 로

분수인치 표시

현재 높이를 3'-6" 같은 피트+분수인치 형태로 표시해 미국 프로젝트에서도 직관적.


➕ 작성 모드

🖱 쓰는 법

  1. 모드를 작성으로 선택
  2. Revit 뷰에서 기준점 클릭 (도구가 PickObject 요청)
  3. UI에서 세부 설정
    • 방향 (수직 / 수평) — Grid 만
    • 수량 (몇 개 생성)
    • 간격 (Grid 간 거리)
    • 길이 (Grid 선 길이)
    • 네이밍 (이름 변경 모드와 동일 규칙)
  4. 작성 클릭 → 기준점에서 시작해 순차 생성

💡 이럴 때 쓰세요

  • 프로젝트 초기 Grid 10개를 5000mm 간격으로 한 번에 생성할 때
  • 기존 그리드 끝에 추가로 5개를 더 만들 때 — 기준점만 지정하면 자동 배치
  • 이름 규칙을 생성 단계에서 바로 적용 — 생성 후 이름 바꿀 필요 없음

기준점은 도구 실행 직후 바로 클릭

도구 실행 시 Revit UI가 먼저 "기준점 클릭하세요"를 요청합니다. 클릭 후 WPF 창이 뜨는 흐름이에요.

🔍 UI 미리보기

Grid / Level Manager
GridLevel
모드:이름 변경그리드 작성
Prefix:Type:숫자Start:1
수직수평대각8개 Grid
방향현재 이름새 이름
수직GA-11
수직GA-22
수평GB-AA
수평GB-BB
이름 변경 적용
Developed by Yoon Dream닫기
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Modeling.panel/gridlevelmanager.pushbutton/ — script.py, ui.xaml
  • 에러 기록: ERROR/grid_level_manager_notes.md

네이밍 규칙 파라미터

설정 설명 예시
Prefix 접두사 G-
Type 숫자 또는 문자 숫자: 1,2,3... / 문자: A,B,C...
Start 시작 값 1 또는 A
Suffix 접미사 -S

결과 예시: G-1-S, G-2-S, G-3-S ...

Grid 방향 자동 분류

classify_grid_direction() 함수가 각 Grid의 방향을 자동 판별:

방향 판별 기준 필터
수직 (V) 시작↔끝 X좌표 차이 < 임계값 체크박스
수평 (H) 시작↔끝 Y좌표 차이 < 임계값 체크박스
대각 (D) 그 외 체크박스

2단계 임시 이름 전략 (중복 충돌 방지)

Revit은 동일 이름 중복을 허용하지 않음. 교차 변경 시 충돌 해결:

  1. Phase 1 — 모든 Grid를 고유한 임시 이름으로 변경 (__TEMP_001__, __TEMP_002__...)
  2. Phase 2 — 임시 이름을 최종 이름으로 변경

단위 표시

feet_to_frac_str() — feet을 feet + 분수인치 형태로 표시:

3.5 feet → 3'-6"
3.25 feet → 3'-3"

기준점 획득

PickObject로 Revit 뷰에서 기준점 클릭.

pyRevit WPF 제약

PickObject는 반드시 ShowDialog() 전에 실행해야 합니다. WPF 창이 열려있으면 Revit UI 입력을 받을 수 없기 때문.

2-Phase Transaction

  1. Phase 1 — Grid/Level 요소 생성 (Transaction 1)
  2. Phase 2 — 이름 변경 (Transaction 2, 임시 이름 전략 적용)

pyRevit WPF 제약

XAML Click= 불안정 → 코드에서 += 바인딩, Hide/Show 금지.