Skip to content

Commit 174231b

Browse files
authored
Merge pull request #33 from BuildingPerformanceSimulation/detailed_hvac_viewer
Detailed hvac viewer - add images
2 parents 036c67e + 8c2add8 commit 174231b

File tree

8 files changed

+349
-145
lines changed

8 files changed

+349
-145
lines changed

lib/measures/detailed_hvac_viewer/measure.xml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<schema_version>3.1</schema_version>
44
<name>detailed_hvac_viewer</name>
55
<uid>416a484f-bd28-4db8-8926-7d70740390eb</uid>
6-
<version_id>e9420fc1-03ba-4447-8f21-406039655bbe</version_id>
7-
<version_modified>2024-05-27T05:45:22Z</version_modified>
6+
<version_id>9b2dbc22-2b25-4bc2-8f5c-5a3ae43415a4</version_id>
7+
<version_modified>2024-05-27T15:40:20Z</version_modified>
88
<xml_checksum>C068F366</xml_checksum>
99
<class_name>DetailedHVACViewer</class_name>
1010
<display_name>Detailed HVAC Viewer</display_name>
@@ -521,35 +521,17 @@
521521
<checksum>FC079194</checksum>
522522
</file>
523523
<file>
524-
<filename>images/OS_AirLoopHVAC_OutdoorAirSystem_Left.png</filename>
524+
<filename>images/OAMixer_left.png</filename>
525525
<filetype>png</filetype>
526526
<usage_type>resource</usage_type>
527527
<checksum>44F75E3F</checksum>
528528
</file>
529529
<file>
530-
<filename>images/OS_AirLoopHVAC_OutdoorAirSystem_Right.png</filename>
530+
<filename>images/OAMixer_right.png</filename>
531531
<filetype>png</filetype>
532532
<usage_type>resource</usage_type>
533533
<checksum>00C310F5</checksum>
534534
</file>
535-
<file>
536-
<filename>images/OS_Coil_Cooling_DX_TwoSpeed.png</filename>
537-
<filetype>png</filetype>
538-
<usage_type>resource</usage_type>
539-
<checksum>291533F7</checksum>
540-
</file>
541-
<file>
542-
<filename>images/OS_Coil_Heating_Gas.png</filename>
543-
<filetype>png</filetype>
544-
<usage_type>resource</usage_type>
545-
<checksum>95E0B87F</checksum>
546-
</file>
547-
<file>
548-
<filename>images/OS_Fan_VariableVolume.png</filename>
549-
<filetype>png</filetype>
550-
<usage_type>resource</usage_type>
551-
<checksum>9E4B5D6F</checksum>
552-
</file>
553535
<file>
554536
<filename>images/air_cooled.png</filename>
555537
<filetype>png</filetype>
@@ -850,6 +832,12 @@
850832
<usage_type>resource</usage_type>
851833
<checksum>90EDB4DD</checksum>
852834
</file>
835+
<file>
836+
<filename>images/dxcoolingcoil_2stage_humidity.png</filename>
837+
<filetype>png</filetype>
838+
<usage_type>resource</usage_type>
839+
<checksum>291533F7</checksum>
840+
</file>
853841
<file>
854842
<filename>images/dxcoolingcoil_singlespeed.png</filename>
855843
<filetype>png</filetype>
@@ -922,6 +910,12 @@
922910
<usage_type>resource</usage_type>
923911
<checksum>22BBCE49</checksum>
924912
</file>
913+
<file>
914+
<filename>images/fan_variable.png</filename>
915+
<filetype>png</filetype>
916+
<usage_type>resource</usage_type>
917+
<checksum>9E4B5D6F</checksum>
918+
</file>
925919
<file>
926920
<filename>images/fan_zoneexhaust.png</filename>
927921
<filetype>png</filetype>
@@ -952,6 +946,12 @@
952946
<usage_type>resource</usage_type>
953947
<checksum>3249F600</checksum>
954948
</file>
949+
<file>
950+
<filename>images/furnace.png</filename>
951+
<filetype>png</filetype>
952+
<usage_type>resource</usage_type>
953+
<checksum>95E0B87F</checksum>
954+
</file>
955955
<file>
956956
<filename>images/furnace_multi_stage.png</filename>
957957
<filetype>png</filetype>
@@ -1508,7 +1508,7 @@
15081508
<filename>report.html.erb</filename>
15091509
<filetype>erb</filetype>
15101510
<usage_type>resource</usage_type>
1511-
<checksum>47D8CA23</checksum>
1511+
<checksum>F34A16C5</checksum>
15121512
</file>
15131513
<file>
15141514
<filename>USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw</filename>
@@ -1526,7 +1526,7 @@
15261526
<filename>office_chicago_pvav.osm</filename>
15271527
<filetype>osm</filetype>
15281528
<usage_type>test</usage_type>
1529-
<checksum>12FFD871</checksum>
1529+
<checksum>780296DE</checksum>
15301530
</file>
15311531
</files>
15321532
</measure>

lib/measures/detailed_hvac_viewer/resources/images/OS_AirLoopHVAC_OutdoorAirSystem_Left.png renamed to lib/measures/detailed_hvac_viewer/resources/images/OAMixer_left.png

File renamed without changes.

lib/measures/detailed_hvac_viewer/resources/images/OS_AirLoopHVAC_OutdoorAirSystem_Right.png renamed to lib/measures/detailed_hvac_viewer/resources/images/OAMixer_right.png

File renamed without changes.

lib/measures/detailed_hvac_viewer/resources/images/OS_Coil_Cooling_DX_TwoSpeed.png renamed to lib/measures/detailed_hvac_viewer/resources/images/dxcoolingcoil_2stage_humidity.png

File renamed without changes.

lib/measures/detailed_hvac_viewer/resources/images/OS_Fan_VariableVolume.png renamed to lib/measures/detailed_hvac_viewer/resources/images/fan_variable.png

File renamed without changes.

lib/measures/detailed_hvac_viewer/resources/images/OS_Coil_Heating_Gas.png renamed to lib/measures/detailed_hvac_viewer/resources/images/furnace.png

File renamed without changes.

lib/measures/detailed_hvac_viewer/resources/report.html.erb

Lines changed: 161 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,160 @@
7171
<script>
7272
var hvac_data = <%= hvac_data %>;
7373

74+
// create image dictionary
75+
var imageDict = {}
76+
// Default icon to avoid a crash
77+
imageDict["Catchall"] = "missing_icon.png";
78+
imageDict["OS_AirConditioner_VariableRefrigerantFlow"] = "vrf_outdoor.png";
79+
imageDict["OS_AirLoopHVAC_OutdoorAirSystem"] = "OAMixer.png";
80+
imageDict["OS_AirLoopHVAC_UnitaryCoolOnly"] = "DXCoolingCoil.png";
81+
imageDict["OS_AirLoopHVAC_UnitaryHeatPump_AirToAir"] = "heat_pump3.png";
82+
imageDict["OS_AirLoopHVAC_UnitaryHeatPump_AirToAir_MultiSpeed"] = "heat_pump3.png";
83+
imageDict["OS_AirLoopHVAC_UnitarySystem"] = "unitary_system.png";
84+
imageDict["OS_AirLoopHVAC_UnitaryHeatCool_VAVChangeoverBypass"] = "unitary_system.png";
85+
imageDict["OS_AirLoopHVAC_ReturnPlenum"] = "mixer.png";
86+
imageDict["OS_AirLoopHVAC_SupplyPlenum"] = "splitter.png";
87+
imageDict["OS_AirLoopHVAC_ZoneMixer"] = "mixer.png";
88+
imageDict["OS_AirLoopHVAC_ZoneSplitter"] = "splitter.png";
89+
imageDict["OS_AirTerminal_DualDuct_VAV"] = "airterminal_dualduct_vav.png";
90+
imageDict["OS_AirTerminal_DualDuct_ConstantVolume"] = "airterminal_dualduct_constantvolume.png";
91+
imageDict["OS_AirTerminal_DualDuct_VAV_OutdoorAir"] = "airterminal_dualduct_vav_outdoorair.png";
92+
imageDict["OS_AirTerminal_SingleDuct_ConstantVolume_CooledBeam"] = "chilled_beam.png";
93+
imageDict["OS_AirTerminal_SingleDuct_ConstantVolume_Reheat"] = "cav_reheat.png";
94+
imageDict["OS_AirTerminal_SingleDuct_ConstantVolume_FourPipeInduction"] = "single_ducts_constant_vol_4pipe.png";
95+
imageDict["OS_AirTerminal_SingleDuct_ConstantVolume_FourPipeBeam"] = "airterminal_fourpipebeam.png";
96+
imageDict["OS_AirTerminal_SingleDuct_ParallelPIU_Reheat"] = "parallel_fan_terminal.png";
97+
imageDict["OS_AirTerminal_SingleDuct_SeriesPIU_Reheat"] = "series_fan_terminal.png";
98+
imageDict["OS_AirTerminal_SingleDuct_ConstantVolume_NoReheat"] = "direct-air.png";
99+
imageDict["OS_AirTerminal_SingleDuct_VAV_NoReheat"] = "vav_noreheat.png";
100+
imageDict["OS_AirTerminal_SingleDuct_VAV_Reheat"] = "vav-reheat.png";
101+
imageDict["OS_AirTerminal_SingleDuct_InletSideMixer"] = "air_terminal_inlet_mixer.png";
102+
imageDict["OS_AirTerminal_SingleDuct_VAV_HeatAndCool_NoReheat"] = "vav_noreheat.png";
103+
imageDict["OS_AirTerminal_SingleDuct_VAV_HeatAndCool_Reheat"] = "vav-reheat.png";
104+
imageDict["OS_Boiler_HotWater"] = "boiler.png";
105+
imageDict["OS_Boiler_Steam"] = "boiler_steam.png";
106+
imageDict["OS_CentralHeatPumpSystem"] = "centralheatpumpsystem.png";
107+
imageDict["OS_Chiller_Electric_EIR"] = "chiller_air.png";
108+
imageDict["OS_Chiller_Absorption_Indirect"] = "chiller_absorption_indirect.png";
109+
imageDict["OS_Chiller_Absorption"] = "chiller_absorption_direct.png";
110+
imageDict["OS_Coil_Cooling_DX_SingleSpeed"] = "dxcoolingcoil_singlespeed.png";
111+
imageDict["OS_Coil_Cooling_DX_TwoSpeed"] = "dxcoolingcoil_2speed.png";
112+
imageDict["OS_Coil_Cooling_DX_MultiSpeed"] = "dx_cooling_multispeed.png";
113+
imageDict["OS_Coil_Cooling_DX_VariableSpeed"] = "cool_coil_dx_vari_speed.png";
114+
imageDict["OS_Coil_Cooling_LowTemperatureRadiant_ConstantFlow"] = "coilcoolinglowtemprad_constflow.png";
115+
imageDict["OS_Coil_Cooling_LowTemperatureRadiant_VariableFlow"] = "coilcoolinglowtemprad_varflow.png";
116+
imageDict["OS_Coil_Cooling_WaterToAirHeatPump_EquationFit"] = "wahpDXCC.png";
117+
imageDict["OS_Coil_Cooling_WaterToAirHeatPump_VariableSpeedEquationFit"] = "Coil_Cooling_WaterToAirHeatPump_VariableSpeedEquationFit.png";
118+
imageDict["OS_Coil_Cooling_Water"] = "cool_coil.png";
119+
imageDict["OS_Coil_Cooling_Water_Panel_Radiant"] = "coilcooling_water_panel_radiant.png";
120+
imageDict["OS_Coil_Heating_DX_SingleSpeed"] = "coil_ht_dx_singlespeed.png";
121+
imageDict["OS_Coil_Heating_DX_VariableSpeed"] = "ht_coil_dx_vari.png";
122+
imageDict["OS_Coil_Heating_Electric"] = "electric_furnace.png";
123+
imageDict["OS_Coil_Heating_Gas"] = "furnace.png";
124+
imageDict["OS_Coil_Heating_Gas_MultiStage"] = "furnace_multi_stage.png";
125+
imageDict["OS_Coil_Heating_Water"] = "heat_coil.png";
126+
imageDict["OS_Coil_Heating_LowTemperatureRadiant_ConstantFlow"] = "coilheatinglowtemprad_constflow.png";
127+
imageDict["OS_Coil_Heating_LowTemperatureRadiant_VariableFlow"] = "coilheatinglowtemprad_varflow.png";
128+
imageDict["OS_Coil_Heating_WaterToAirHeatPump_EquationFit"] = "wahpDXHC.png";
129+
imageDict["OS_Coil_Heating_WaterToAirHeatPump_VariableSpeedEquationFit"] = "Coil_Heating_WaterToAirHeatPump_VariableSpeedEquationFit.png";
130+
imageDict["OS_CoolingTower_SingleSpeed"] = "cooling_tower.png";
131+
imageDict["OS_CoolingTower_TwoSpeed"] = "cooling_tower_2speed.png";
132+
imageDict["OS_CoolingTower_VariableSpeed"] = "cooling_tower_variable.png";
133+
imageDict["OS_Connector_Mixer"] = "mixer.png";
134+
imageDict["OS_Connector_Splitter"] = "splitter.png";
135+
imageDict["OS_DistrictCooling"] = "districtcooling.png";
136+
imageDict["OS_DistrictHeating_Water"] = "districtheating.png";
137+
imageDict["OS_Duct"] = "duct.png";
138+
imageDict["OS_EvaporativeCooler_Direct_ResearchSpecial"] = "directEvap.png";
139+
imageDict["OS_EvaporativeCooler_Indirect_ResearchSpecial"] = "indirectEvap.png";
140+
imageDict["OS_Fan_ComponentModel"] = "fan_componentmodel.png";
141+
imageDict["OS_Fan_ConstantVolume"] = "fan_constant.png";
142+
imageDict["OS_Fan_OnOff"] = "fan_on_off.png";
143+
imageDict["OS_Fan_SystemModel"] = "fan_systemmodel.png";
144+
imageDict["OS_Fan_VariableVolume"] = "fan_variable.png";
145+
imageDict["OS_Fan_ZoneExhaust"] = "fan_zoneexhaust.png";
146+
imageDict["OS_FluidCooler_SingleSpeed"] = "fluid_cooler_single.png";
147+
imageDict["OS_FluidCooler_TwoSpeed"] = "fluid_cooler_two.png";
148+
imageDict["OS_GroundHeatExchanger_Vertical"] = "ground_heat_exchanger_vertical.png";
149+
imageDict["OS_GroundHeatExchanger_HorizontalTrench"] = "ground_heat_exchanger_horizontal.png";
150+
imageDict["OS_HeaderedPumps_ConstantSpeed"] = "headered_pumps_constant.png";
151+
imageDict["OS_HeaderedPumps_VariableSpeed"] = "headered_pumps_variable.png";
152+
imageDict["OS_HeatExchanger_AirToAir_SensibleAndLatent"] = "heat_transfer_outdoorair.png";
153+
imageDict["OS_HeatExchanger_FluidToFluid"] = "fluid_hx.png";
154+
imageDict["OS_HeatPump_WaterToWater_EquationFit_Cooling"] = "heatpump_watertowater_equationfit_cooling.png";
155+
imageDict["OS_HeatPump_WaterToWater_EquationFit_Heating"] = "heatpump_watertowater_equationfit_heating.png";
156+
imageDict["OS_Humidifier_Steam_Electric"] = "electric_humidifier.png";
157+
imageDict["OS_Humidifier_Steam_Gas"] = "gas_humidifier.png";
158+
imageDict["OS_EvaporativeFluidCooler_SingleSpeed"] = "evap_fluid_cooler.png";
159+
imageDict["OS_EvaporativeFluidCooler_TwoSpeed"] = "evap_fluid_cooler_two_speed.png";
160+
imageDict["OS_Generator_FuelCell_ExhaustGasToWaterHeatExchanger"] = "generator_fuelcell_exhaustgastowaterheatexchanger.png";
161+
imageDict["OS_Generator_MicroTurbine_HeatRecovery"] = "generator_microturbine_heatrecovery.png";
162+
imageDict["OS_LoadProfile_Plant"] = "plant_profile.png";
163+
imageDict["OS_Pipe_Adiabatic"] = "pipe.png";
164+
imageDict["OS_Pipe_Indoor"] = "pipe_indoor.png";
165+
imageDict["OS_Pipe_Outdoor"] = "pipe_outdoor.png";
166+
imageDict["OS_PlantComponent_TemperatureSource"] = "plant_temp_source.png";
167+
imageDict["OS_PlantComponent_UserDefined"] = "user_defined.png";
168+
imageDict["OS_Pump_ConstantSpeed"] = "pump_constant.png";
169+
imageDict["OS_Pump_VariableSpeed"] = "pump_variable.png";
170+
imageDict["OS_Refrigeration_Condenser_AirCooled"] = "air_cooled.png";
171+
imageDict["OS_Refrigeration_Condenser_Cascade"] = "condenser_cascade.png";
172+
imageDict["OS_Refrigeration_Condenser_EvaporativeCooled"] = "evap_cooled.png";
173+
imageDict["OS_Refrigeration_Condenser_WaterCooled"] = "water_cooled.png";
174+
imageDict["OS_SolarCollector_FlatPlate_PhotovoltaicThermal"] = "solarcollector_flatplate_photovoltaicthermal.png";
175+
imageDict["OS_SolarCollector_FlatPlate_Water"] = "solarcollector_flatplate_water.png";
176+
imageDict["OS_SolarCollector_IntegralCollectorStorage"] = "solarcollector_integralstorage.png";
177+
imageDict["OS_SwimmingPool_Indoor"] = "swimming_pool.png";
178+
imageDict["OS_TemperingValve"] = "tempering_valve.png";
179+
imageDict["OS_ThermalZone"] = "zone.png";
180+
imageDict["OS_ThermalStorage_Ice_Detailed"] = "thermal_storage_ice.png";
181+
imageDict["OS_ThermalStorage_ChilledWater_Stratified"] = "thermal_storage_strat.png";
182+
imageDict["OS_WaterHeater_HeatPump"] = "water_heater.png";
183+
imageDict["OS_WaterHeater_Mixed"] = "water_heater_mixed.png";
184+
imageDict["OS_WaterHeater_Stratified"] = "water_heater_stratified.png";
185+
imageDict["OS_WaterUse_Connections"] = "water_connection.png";
186+
imageDict["OS_WaterUse_Equipment"] = "sink.png";
187+
imageDict["OS_ZoneHVAC_Baseboard_RadiantConvective_Electric"] = "baseboard_rad_convect_electric.png";
188+
imageDict["OS_ZoneHVAC_Baseboard_RadiantConvective_Water"] = "baseboard_rad_convect_water.png";
189+
imageDict["OS_ZoneHVAC_Baseboard_Convective_Electric"] = "baseboard_electric.png";
190+
imageDict["OS_ZoneHVAC_Baseboard_Convective_Water"] = "baseboard_water.png";
191+
imageDict["OS_ZoneHVAC_CoolingPanel_RadiantConvective_Water"] = "zonehvac_coolingpanel_radiantconvective_water.png";
192+
imageDict["OS_ZoneHVAC_Dehumidifier_DX"] = "dehumidifier_dx.png";
193+
imageDict["OS_ZoneHVAC_EnergyRecoveryVentilator"] = "energy_recov_vent.png";
194+
imageDict["OS_Coil_Heating_Water_Baseboard"] = "coilheatingwater_baseboard.png";
195+
imageDict["OS_Coil_Heating_Water_Baseboard_Radiant"] = "Coil_Heating_Water_Baseboard_Radiant.png";
196+
imageDict["OS_Coil_Cooling_CooledBeam"] = "coilcoolingchilledbeam.png";
197+
imageDict["OS_Coil_Cooling_FourPipeBeam"] = "coilcoolingfourpipebeam.png";
198+
imageDict["OS_Coil_Heating_FourPipeBeam"] = "coilheatingfourpipebeam.png";
199+
imageDict["OS_Coil_Heating_Desuperheater"] = "coilheatingdesuperheater.png";
200+
imageDict["OS_Coil_Cooling_DX_TwoStageWithHumidityControlMode"] = "dxcoolingcoil_2stage_humidity.png";
201+
imageDict["OS_CoilSystem_Cooling_Water_HeatExchangerAssisted"] = "coil_system_coolingwater_heat_exchanger.png";
202+
imageDict["OS_CoilSystem_Cooling_DX_HeatExchangerAssisted"] = "coilsystem_cooling_dx.png";
203+
imageDict["OS_ZoneHVAC_FourPipeFanCoil"] = "four_pipe_fan_coil.png";
204+
imageDict["OS_ZoneHVAC_HighTemperatureRadiant"] = "hightempradiant.png";
205+
imageDict["OS_ZoneHVAC_LowTemperatureRadiant_VariableFlow"] = "lowtempradiant_varflow.png";
206+
imageDict["OS_ZoneHVAC_LowTemperatureRadiant_VariableFlow"] = "lowtempradiant_varflow.png";
207+
imageDict["OS_ZoneHVAC_LowTemperatureRadiant_ConstantFlow"] = "lowtempradiant_constflow.png";
208+
imageDict["OS_ZoneHVAC_PackagedTerminalAirConditioner"] = "system_type_1.png";
209+
imageDict["OS_ZoneHVAC_PackagedTerminalHeatPump"] = "system_type_2.png";
210+
imageDict["OS_ZoneHVAC_TerminalUnit_VariableRefrigerantFlow"] = "vrf_unit.png";
211+
imageDict["OS_ZoneHVAC_WaterToAirHeatPump"] = "watertoairHP.png";
212+
imageDict["OS_ZoneHVAC_UnitHeater"] = "heat_coil-uht.png";
213+
imageDict["OS_ZoneHVAC_UnitVentilator"] = "unit_ventilator.png";
214+
// placeholder icons until unique icons available
215+
imageDict["OS_AvailabilityManager_Scheduled"] = "hvac-icon.png";
216+
imageDict["OS_AvailabilityManager_ScheduledOn"] = "hvac-icon.png";
217+
imageDict["OS_AvailabilityManager_ScheduledOff"] = "hvac-icon.png";
218+
imageDict["OS_AvailabilityManager_LowTemperatureTurnOn"] = "hvac-icon.png";
219+
imageDict["OS_AvailabilityManager_LowTemperatureTurnOff"] = "hvac-icon.png";
220+
imageDict["OS_AvailabilityManager_HighTemperatureTurnOn"] = "hvac-icon.png";
221+
imageDict["OS_AvailabilityManager_HighTemperatureTurnOff"] = "hvac-icon.png";
222+
imageDict["OS_AvailabilityManager_DifferentialThermostat"] = "hvac-icon.png";
223+
imageDict["OS_AvailabilityManager_OptimumStart"] = "hvac-icon.png";
224+
imageDict["OS_AvailabilityManager_NightCycle"] = "hvac-icon.png";
225+
imageDict["OS_AvailabilityManager_NightVentilation"] = "hvac-icon.png";
226+
imageDict["OS_AvailabilityManager_HybridVentilation"] = "hvac-icon.png";
227+
74228
const activeNodes = {};
75229

76230
function splitOutdoorAirSystemObjects(objects) {
@@ -151,12 +305,16 @@ function assignImage(obj){
151305
}
152306
} else if (obj.object_type === 'OS_AirLoopHVAC_OutdoorAirSystem') {
153307
if (obj.object_name.includes(" Left")) {
154-
return 'OS_AirLoopHVAC_OutdoorAirSystem_Left.png'
308+
return 'OAMixer_left.png'
155309
} else {
156-
return 'OS_AirLoopHVAC_OutdoorAirSystem_Right.png'
310+
return 'OAMixer_right.png'
157311
}
158312
} else {
159-
return obj.object_type + ".png"
313+
if (obj.object_type in imageDict) {
314+
return imageDict[obj.object_type]
315+
} else {
316+
return "missing_icon.png"
317+
}
160318
}
161319
};
162320

0 commit comments

Comments
 (0)