Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
@@ -26,7 +26,7 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
26 |
from app.intro import display_intro_page
|
27 |
from app.building_information import display_building_info_page
|
28 |
from app.climate_data import display_climate_page
|
29 |
-
from app.materials_library import display_materials_page, Material, GlazingMaterial, MaterialCategory
|
30 |
from app.construction import display_construction_page, get_available_constructions
|
31 |
from app.components import display_components_page
|
32 |
from app.internal_loads import display_internal_loads_page
|
@@ -71,6 +71,11 @@ class BuildSustain:
|
|
71 |
if 'current_page' not in st.session_state:
|
72 |
st.session_state.current_page = "Intro"
|
73 |
|
|
|
|
|
|
|
|
|
|
|
74 |
# Initialize project data structure if not set
|
75 |
if 'project_data' not in st.session_state:
|
76 |
st.session_state.project_data = {
|
@@ -115,7 +120,8 @@ class BuildSustain:
|
|
115 |
"hourly_data": [],
|
116 |
"epw_filename": "",
|
117 |
"typical_extreme_periods": {},
|
118 |
-
"ground_temperatures": {}
|
|
|
119 |
},
|
120 |
"materials": {
|
121 |
"library": dict(SAMPLE_MATERIALS),
|
@@ -149,15 +155,33 @@ class BuildSustain:
|
|
149 |
"hourly": [],
|
150 |
"peak": 0,
|
151 |
"summary_tables": {},
|
152 |
-
"charts": {}
|
|
|
153 |
},
|
154 |
"heating": {
|
155 |
"hourly": [],
|
156 |
"peak": 0,
|
157 |
"summary_tables": {},
|
158 |
-
"charts": {}
|
|
|
159 |
}
|
160 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
"building_energy": {
|
162 |
"hvac_type": "",
|
163 |
"cop": 0.0,
|
@@ -341,6 +365,18 @@ class BuildSustain:
|
|
341 |
if key in st.session_state:
|
342 |
st.session_state.pop(key, None)
|
343 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
# Clear any module-specific rerun flags when changing pages
|
345 |
st.session_state.module_rerun_flags = {}
|
346 |
|
|
|
26 |
from app.intro import display_intro_page
|
27 |
from app.building_information import display_building_info_page
|
28 |
from app.climate_data import display_climate_page
|
29 |
+
from app.materials_library import display_materials_page, Material, GlazingMaterial, MaterialCategory, MaterialLibrary # Added MaterialLibrary import
|
30 |
from app.construction import display_construction_page, get_available_constructions
|
31 |
from app.components import display_components_page
|
32 |
from app.internal_loads import display_internal_loads_page
|
|
|
71 |
if 'current_page' not in st.session_state:
|
72 |
st.session_state.current_page = "Intro"
|
73 |
|
74 |
+
# Initialize material library if not set (Added to support hvac_loads.py)
|
75 |
+
if 'material_library' not in st.session_state:
|
76 |
+
st.session_state.material_library = MaterialLibrary()
|
77 |
+
logger.info("Initialized MaterialLibrary in session state")
|
78 |
+
|
79 |
# Initialize project data structure if not set
|
80 |
if 'project_data' not in st.session_state:
|
81 |
st.session_state.project_data = {
|
|
|
120 |
"hourly_data": [],
|
121 |
"epw_filename": "",
|
122 |
"typical_extreme_periods": {},
|
123 |
+
"ground_temperatures": {},
|
124 |
+
"ground_reflectivity": 0.2 # Added for hvac_loads.py solar calculations
|
125 |
},
|
126 |
"materials": {
|
127 |
"library": dict(SAMPLE_MATERIALS),
|
|
|
155 |
"hourly": [],
|
156 |
"peak": 0,
|
157 |
"summary_tables": {},
|
158 |
+
"charts": {},
|
159 |
+
"breakdown": {} # Added to store detailed load components (e.g., conduction, solar)
|
160 |
},
|
161 |
"heating": {
|
162 |
"hourly": [],
|
163 |
"peak": 0,
|
164 |
"summary_tables": {},
|
165 |
+
"charts": {},
|
166 |
+
"breakdown": {} # Added to store detailed load components
|
167 |
}
|
168 |
},
|
169 |
+
"hvac_settings": { # Added to support hvac_loads.py
|
170 |
+
"operating_hours": [{"start": 8, "end": 18}],
|
171 |
+
"system_type": "Default"
|
172 |
+
},
|
173 |
+
"sim_period": { # Added to support hvac_loads.py
|
174 |
+
"type": "Full Year",
|
175 |
+
"start_date": None,
|
176 |
+
"end_date": None,
|
177 |
+
"base_temp": 18.3
|
178 |
+
},
|
179 |
+
"indoor_conditions": { # Added to support hvac_loads.py
|
180 |
+
"type": "Fixed",
|
181 |
+
"cooling_setpoint": {"temperature": 24.0, "rh": 50.0},
|
182 |
+
"heating_setpoint": {"temperature": 20.0, "rh": 50.0},
|
183 |
+
"schedule": []
|
184 |
+
},
|
185 |
"building_energy": {
|
186 |
"hvac_type": "",
|
187 |
"cop": 0.0,
|
|
|
365 |
if key in st.session_state:
|
366 |
st.session_state.pop(key, None)
|
367 |
|
368 |
+
# Clear HVAC-specific states when leaving the HVAC Loads page (Added to support hvac_loads.py)
|
369 |
+
if previous_page == "HVAC Loads":
|
370 |
+
keys_to_clear = [
|
371 |
+
"hvac_loads_rerun_pending",
|
372 |
+
"hvac_loads_form_state",
|
373 |
+
"hvac_loads_editor",
|
374 |
+
"rerun_trigger"
|
375 |
+
]
|
376 |
+
for key in keys_to_clear:
|
377 |
+
if key in st.session_state:
|
378 |
+
st.session_state.pop(key, None)
|
379 |
+
|
380 |
# Clear any module-specific rerun flags when changing pages
|
381 |
st.session_state.module_rerun_flags = {}
|
382 |
|