콘텐츠로 이동

구조 기초 · 버림콘 · 기둥

구조 관련 3가지 모델링 도구: 기초 높이별 시각화 (Foundation Filter), 버림 콘크리트 자동 생성 (Lean Concrete), 페데스탈 위 기둥 자동 배치 (Steel Column).


Foundation Filter

구조 기초의 하단 레벨(Elevation at Bottom)을 자동 분석해 뷰 필터 + 해치 패턴을 한 번에 생성

🖱 쓰는 법

  1. 평면 뷰 열어둔 상태에서
  2. YoonDream 탭 → Modeling 패널 → Foundation Filter 버튼 클릭
  3. 도구가 현재 문서 + 링크 모델의 구조 기초를 자동 수집
  4. 하단 레벨(EL)별로 자동 그룹핑 표시
  5. 각 레벨에 적용할 해치 패턴 드롭다운에서 선택
  6. 필터 생성 클릭 → 뷰에 즉시 적용

💡 이럴 때 쓰세요

  • 기초 깊이별로 다른 해치를 넣어 도면 가독성 높일 때
  • 토공사 범위 구분을 위해 EL -3000 / -2500 / -2000 구간을 시각적으로 나눌 때
  • 건축/구조/MEP 링크된 기초까지 한 번에 필터링할 때
  • 수동으로 필터 + 해치 만드는 번거로움 제거 — 48개 기초 × 5개 레벨 = 5분 만에 완성

EL 값이 영문 피트+분수인치로 자동 표시

EL -3000 (3'-0") 같은 형태로 미터법·피트법 둘 다 읽기 편하게 표시됩니다.

🔍 UI 미리보기

기초 뷰 필터 생성
대상:StructuralFoundation (현재 문서 + 링크)48개
전체 선택전체 해제5개 레벨
EL -3000 (3'-0")12Hatch A
EL -2500 (2'-6")8Hatch B
EL -2000 (2'-0")15Hatch C
Developed by Yoon Dream취소 필터 생성
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Modeling.panel/foundation_filter.pushbutton/

워크플로우

  1. FilteredElementCollector로 구조기초 수집 (링크 모델 포함)
  2. 각 기초의 Elevation at Bottom 파라미터 값 추출
  3. 동일 레벨값끼리 자동 그룹핑
  4. 그룹별 ParameterFilterElement 생성
  5. 각 필터에 FillPatternElement (해치) 오버라이드 적용

단위 변환

feet_to_frac_str() — feet 값을 사람이 읽기 쉬운 형태로 변환:

gcd()  # 분수 단순화를 위한 최대공약수
# 3.5 feet → "3'-6\""

링크 모델 지원

RevitLinkInstance를 통해 다른 공종(건축, MEP)의 기초도 동일하게 처리. 링크 모델의 Transform을 적용하여 좌표 보정.


Lean Concrete

선택한 구조 요소(바닥·기초·기둥·보) 아래에 버림 콘크리트 바닥을 자동 생성

🖱 쓰는 법

  1. YoonDream 탭 → Modeling 패널 → Lean Concrete 버튼 클릭
  2. Floor Type 드롭다운에서 버림콘에 쓸 바닥 타입 선택
  3. Boundary Offset (인치 단위) 입력 — 경계를 바깥쪽으로 얼마나 확장할지 (기본 4")
  4. Create 클릭
  5. Revit에서 대상 구조 요소 선택
    • 바닥 / 구조 기초 / 구조 기둥 / 구조 보만 선택 가능 (필터 자동 적용)
  6. 선택 완료 → 도구가 바닥면 경계 추출 + 오프셋 + Floor 자동 생성

💡 이럴 때 쓰세요

  • 기초 · 기둥 · 보 하부에 버림콘을 자동으로 깔아야 할 때 — 손으로 Floor 스케치할 필요 없음
  • 바닥면 경계에서 밖으로 4인치 오프셋해서 버림콘 범위 확장할 때
  • 여러 카테고리를 한 번에 처리할 때 — 구조 기둥과 바닥 섞여 있어도 OK

대상 카테고리는 구조 요소 4종

선택 필터가 활성화되어 바닥/구조기초/구조기둥/구조보만 선택 가능. 다른 요소는 클릭해도 선택 안 됨.

🔍 UI 미리보기

Lean Concrete Settings
Floor Type (Lean Concrete):
LC_100mm_Lean_Concrete
Boundary Offset (inches):
4
Thickness: 100mm
Developed by Yoon DreamCreate Cancel
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Modeling.panel/lean_concrete.pushbutton/ — script.py, ui.xaml

대상 요소 (4개 카테고리)

카테고리 Revit 클래스
바닥 (Floor) BuiltInCategory.OST_Floors
구조 기초 (Foundation) BuiltInCategory.OST_StructuralFoundation
구조 기둥 (Column) BuiltInCategory.OST_StructuralColumns
구조 보 (Beam) BuiltInCategory.OST_StructuralFraming

StructuralElementFilter(ISelectionFilter) — 위 4개 카테고리만 선택 가능하도록 필터링.

처리 흐름

1. 구조 요소 선택 (ISelectionFilter)
2. get_bottom_curveloop() — 바닥면 CurveLoop 추출
3. offset_loops_outward() — 경계를 외부로 오프셋 (인치 단위)
4. Floor.Create() — 오프셋된 경계로 Floor 생성
5. Floor 타입 적용 (사용자 선택)

핵심 유틸리티 (재활용 가능)

함수 파일 용도
get_bottom_curveloop() lib/ew_utils.py Solid에서 바닥면 CurveLoop 추출
offset_loops_outward() lib/ew_utils.py CurveLoop 외부 오프셋
get_element_elevation_bounds() lib/ew_calc.py 요소의 Top/Bottom Z 값

Phase 2 (미구현)

경계 병합 — Solid Boolean Union 접근법 예정.


Steel Column 기둥배치

선택한 페데스탈(구조 기초) 상단에 철골 기둥을 자동으로 일괄 배치

🖱 쓰는 법

  1. YoonDream 탭 → Modeling 패널 → Steel Column 버튼 클릭
  2. 배치할 기둥 FamilySymbol 선택
  3. Revit 뷰에서 페데스탈(구조 기초) 여러 개 선택
  4. 배치 클릭 → 각 페데스탈 상단 중심점에 기둥 생성

💡 이럴 때 쓰세요

  • 페데스탈 수십 개 위에 철골 기둥을 하나씩 손으로 배치하기 번거로울 때
  • 배치 기준 레벨을 자동으로 찾아 할당해주길 바랄 때 — Ztop에 가장 가까운 Level 자동 매칭
  • 페데스탈이 회전돼 있어도 기둥도 같은 각도로 배치해야 할 때 — 회전각 자동 반영

🔍 UI 미리보기

Steel Column 기둥 배치
배치할 기둥 타입
H_Column_Steel : H200x200x8x12
선택된 페데스탈12개
페데스탈 ID위치대응 Level
485421(X1, Y1)1F
485422(X1, Y2)1F
485423(X2, Y1) · 회전 15°1F
485424(X2, Y2) · 회전 15°1F
💡 각 페데스탈 상단 중심점 + 회전각 자동 반영
Developed by Yoon Dream취소 배치
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Modeling.panel/auto_place_columns.pushbutton/

위치 계산 함수

함수 역할
get_pedestal_top_center() BoundingBox 상단 중심점 (X, Y, Ztop)
get_element_rotation() LocationPoint에서 회전각 추출
get_nearest_level() Ztop에 가장 가까운 Level 찾기
collect_column_symbols() 배치 가능한 기둥 FamilySymbol 수집

워크플로우

  1. 사용자가 페데스탈(구조 기초) 선택
  2. 각 기초의 상단 중심점 계산 (BoundingBox)
  3. 가장 가까운 Level 자동 매칭
  4. 기둥 FamilySymbol 선택
  5. doc.Create.NewFamilyInstance() — 정확한 위치 + 회전각으로 배치

Auto Finishes

ℹ️ 이 도구는 Coco 패널에 있지만, 요소 자동 생성 성격이 강해 이 페이지에 함께 정리되어 있습니다.

선택한 면을 클릭하면 면 방향에 따라 자동으로 바닥·천장·벽 마감을 생성

🖱 쓰는 법

  1. YoonDream 탭 → Coco 패널 → Auto Finishes 버튼 클릭
  2. UI에서 바닥/천장/벽 각각의 마감 타입 선택
  3. Revit 뷰에서 면(Face) 피킹
  4. 도구가 자동으로 면 방향 판단 → 해당 마감 요소 생성

📂 면 방향 자동 분류

생성 요소
위를 향한 면 (바닥판 상면 등) 바닥 마감
아래를 향한 면 (슬래브 하부 등) 천장 마감
수직 면 (벽 표면) 벽 마감

💡 이럴 때 쓰세요

  • 구조 모델만 있고 마감이 없는 상태에서 일괄로 마감을 입힐 때
  • 수동으로 바닥/천장/벽 그리기 번거로울 때 — 면 클릭만으로 자동
  • 방향 판별을 자동화해서 실수 방지
🔧 개발자 정보 (API · 경로 · 내부 로직)

파일 위치

  • Coco.panel/auto_finishes.pushbutton/

면 분류 기준

법선 벡터 Z 분류 생성 요소
> 0.9 상면 (Top) 천장 마감
< -0.9 하면 (Bottom) 바닥 마감
|Z| < 0.1 측면 (Side) 벽 마감

워크플로우

  1. UI에서 마감 타입 선택 (바닥/천장/벽 각각)
  2. Revit에서 면(Face) 피킹
  3. 법선 벡터로 면 방향 자동 분류
  4. 해당 타입으로 마감 요소 자동 생성