Pollination에서 생성된 geometry-only OSM 파일을 받아서 단계별로 HVAC, 스케줄, 부하 등을 적용하여 시뮬레이션 가능한 OSM 파일로 변환하는 내부용 도구입니다.
| Step | 이름 | 설명 |
|---|---|---|
| 01 | Naming Rules | Zone/Surface 네이밍 규칙 검증 및 자동 수정 |
| 02 | Thermostat | Dual Setpoint 써모스탯 생성 및 할당 |
| 03 | BEM-Protocol | HVAC 규칙 파싱 및 Zone 매칭 프리뷰 |
| 04 | HVAC Systems | BEM-Protocol 기반 HVAC 시스템 자동 생성 |
| 05 | Schedules | Space Type별 운영 스케줄 생성 |
| 06 | Internal Loads | ASHRAE 90.1 기반 내부 부하 적용 |
| 07 | Sizing | Zone/System/Plant 사이징 파라미터 설정 |
| 08 | QA Checks | 모델 품질 검증 및 오류 리포트 |
Zone에 HVAC 시스템을 할당하기 위한 간단한 규칙 언어입니다.
# 형식: (ZoneMask) > Terminal > AirLoop >> PlantLoop > HeatSource > HeatRejection
# 예시
(.*_DVM_.*) > DVM # DVM Zone들에 VRF 시스템 적용
(.*_AHU[0-9]+.*) > AHU > AHU_Main # AHU Zone들에 VAV 시스템 적용
(.*_FCU[0-9]+) > FCU # FCU Zone들에 팬코일 적용
(.*Corridor.*|.*Stair.*) > NONE # 복도/계단은 비공조
지원 Terminal 유형:
VAV/AHU- 중앙공조 VAV 시스템FCU- 4관식 팬코일 유닛DVM- Samsung VRF 시스템SAC/EIAC/GIAC- 개별 에어컨 (PTAC)NONE- 비공조
Zone 이름에서 Space Type을 자동으로 추출하여 적절한 스케줄과 부하를 적용합니다.
지원 Space Type:
Office, OpenOffice, ClosedOffice, Conference, Lobby, Corridor, Restroom, Breakroom, Kitchen, Retail, Storage, Mechanical, IT_room, Data Center 등
- Python 3.10+
- OpenStudio 3.9
python -m pip install -r requirements.txtrequirements.txt:
openstudio==3.9.0
PySide6>=6.6.0
PyYAML>=6.0
jsonschema>=4.20.0
python main.pyFile > Open OSM또는Load OSM버튼 클릭- Pollination에서 내보낸 geometry-only OSM 파일 선택
- Zone 목록과 시스템 코드 확인
- 색상으로 시스템 유형 구분 (DVM=파랑, AHU=초록, FCU=주황 등)
Auto-Suggest from Zones버튼으로 자동 생성 가능- Zone 이름 패턴에 맞게 규칙 수정
Validate버튼으로 문법 검증Preview Assignments버튼으로 Zone 매칭 확인
- 왼쪽 패널에서 Step 더블클릭으로 실행
- 설정 다이얼로그에서 파라미터 조정
- 실행 결과는 Report 탭에서 확인
Save OSM- 현재 모델 저장Export Manifest- 전체 작업 이력 JSON 내보내기
각 Step 실행 시 다음 파일들이 생성됩니다:
output/
├── Step01_NamingRules.osm # Step 적용 후 OSM
├── Step01_NamingRules.json # Step 실행 리포트
├── Step02_Thermostat.osm
├── Step02_Thermostat.json
├── ...
└── project_manifest.json # 전체 프로젝트 매니페스트
Vibe/
├── main.py # 앱 진입점
├── requirements.txt
├── config/
│ ├── naming_rules.yaml # 네이밍 규칙 설정
│ └── hvac_templates.yaml # HVAC 템플릿 정의
└── src/
├── core/ # 핵심 엔진
│ ├── step_runner.py # Step 실행기
│ ├── step_base.py # Step 추상 클래스
│ └── report.py # JSON 리포트
├── steps/ # Step 구현체
│ ├── naming_rules.py
│ ├── thermostat.py
│ ├── hvac_system.py
│ ├── schedules.py
│ ├── internal_loads.py
│ ├── sizing.py
│ └── qa_checks.py
├── templates/ # HVAC 템플릿 빌더
│ ├── hvac_builder.py
│ ├── dvm_template.py
│ ├── ahu_template.py
│ └── fcu_template.py
├── protocols/ # BEM-Protocol DSL
│ └── bem_protocol.py
└── ui/ # PySide6 UI
├── main_window.py
├── step_panel.py
├── step_config_dialog.py
└── report_viewer.py
Zone, Surface, SubSurface의 네이밍 규칙을 정의합니다.
zones:
pattern: "^[A-Z][a-zA-Z]*_[A-Z0-9]+_[0-9]+[A-Z]?$"
examples:
- "Office_01_001"
- "Restroom_B1_002"HVAC 시스템 템플릿의 기본값을 정의합니다.
templates:
VAV_CHW_HW:
defaults:
supply_air_temp_cooling: 12.8
chw_temp: 6.7
hw_temp: 60.0
vav_min_flow_fraction: 0.3- OpenStudio SDK 3.9 - 에너지 시뮬레이션 모델링
- PySide6 - Qt 기반 GUI
- PyYAML - 설정 파일 파싱
내부용 도구 (Internal Use Only)