First time here? Check out the Help page!
1 | initial version |
To build upon @mdahlausen's answer, here's what I've been doing:
SecondarySchool Bldg Light
in your example, let's call it light_sch
going forwardmodel.getSpaceByName(row["model_space_name"]).get
to get the corresponding space, and create a new lighting object (you need to create a OpenStudio::Model::LightsDefinition
and a OpenStudio::Model::Lights
that references it).SecondarySchool Bldg Light
to get the correct number of hours while maintaining the same profile. For this, I leverage openstudio-standards' ScheduleRuleset.annual_equivalent_full_load_hrs. I store the initial eflh = light_sch.annual_equivalent_full_load_hrs
. For the lighting objects, I clone this schedule, get the ScheduleDay attached to it (it helps if there's only one...) and scale each value entered accordingly by looping on day_sch.times (new_value = old_value * daily_h * 365 / eflh.to_f
)2 | No.2 Revision |
To build upon @mdahlausen's answer, here's what I've been doing:
SecondarySchool Bldg Light
in your example, let's call it light_sch
going forwardmodel.getSpaceByName(row["model_space_name"]).get
to get the corresponding space, and create a new lighting object (you need to create a OpenStudio::Model::LightsDefinition
and a OpenStudio::Model::Lights
that references it).SecondarySchool Bldg Light
to get the correct number of hours while maintaining the same profile. For this, I leverage openstudio-standards' ScheduleRuleset.annual_equivalent_full_load_hrs. I store the initial eflh = light_sch.annual_equivalent_full_load_hrs
. For the lighting objects, I clone this schedule, get the ScheduleDay attached to it (it helps if there's only one...) and scale each value entered accordingly by looping on day_sch.times (new_value = old_value * daily_h * 365 / eflh.to_f
#{light_sch.name} - #{hours}
, so that in the loop I can test whether I already created it or not to avoid duplicating it many times unecessarily.3 | No.3 Revision |
To build upon @mdahlausen's answer, here's what I've been doing:
SecondarySchool Bldg Light
in your example, let's call it light_sch
going forwardmodel.getSpaceByName(row["model_space_name"]).get
to get the corresponding space, and create a new lighting object (you need to create a OpenStudio::Model::LightsDefinition
and a OpenStudio::Model::Lights
that references it).SecondarySchool Bldg Light
to get the correct number of hours while maintaining the same profile. For this, I leverage openstudio-standards' ScheduleRuleset.annual_equivalent_full_load_hrs. I store the initial eflh = light_sch.annual_equivalent_full_load_hrs
. For the lighting objects, I clone this schedule, get the ScheduleDay attached to it (it helps if there's only one...) and scale each value entered accordingly by looping on day_sch.times (new_value = old_value * daily_h * 365 / eflh.to_f
). #{light_sch.name} - #{hours}#{daily_h} hrs/day
, so that in the loop I can test whether I already created it or not to avoid duplicating it many times 4 | No.4 Revision |
To build upon @mdahlausen's @mdahlhausen's answer, here's what I've been doing:
SecondarySchool Bldg Light
in your example, let's call it light_sch
going forwardmodel.getSpaceByName(row["model_space_name"]).get
to get the corresponding space, and create a new lighting object (you need to create a OpenStudio::Model::LightsDefinition
and a OpenStudio::Model::Lights
that references it).SecondarySchool Bldg Light
to get the correct number of hours while maintaining the same profile. For this, I leverage openstudio-standards' ScheduleRuleset.annual_equivalent_full_load_hrs. I store the initial eflh = light_sch.annual_equivalent_full_load_hrs
. For the lighting objects, I clone this schedule, get the ScheduleDay attached to it (it helps if there's only one...) and scale each value entered accordingly by looping on day_sch.times (new_value = old_value * daily_h * 365 / eflh.to_f
). #{light_sch.name} - #{daily_h} hrs/day
, so that in the loop I can test whether I already created it or not to avoid duplicating it many times unnecessarily.5 | No.5 Revision |
To build upon @mdahlhausen's answer, here's what I've been doing:
SecondarySchool Bldg Light
in your example, let's call it light_sch
going forwardmodel.getSpaceByName(row["model_space_name"]).get
to get the corresponding space, and create a new lighting object (you need to create a OpenStudio::Model::LightsDefinition
and a OpenStudio::Model::Lights
that references it).SecondarySchool Bldg Light
to get the correct number of hours while maintaining the same profile. For this, I leverage openstudio-standards' ScheduleRuleset.annual_equivalent_full_load_hrs. I store the initial eflh = light_sch.annual_equivalent_full_load_hrs
. For the lighting objects, I clone this schedule, get the ScheduleDay attached to it (it helps if there's only one...) and scale each value entered accordingly by looping on day_sch.times.with_index
(new_value = old_value * daily_h * 365 / eflh.to_f
). #{light_sch.name} - #{daily_h} hrs/day
, so that in the loop I can test whether I already created it or not to avoid duplicating it many times unnecessarily.6 | No.6 Revision |
To build upon @mdahlhausen's answer, answer in more specific terms, here's what I've been doing:doing to automate this stuff:
SecondarySchool Bldg Light
in your example, let's call it light_sch
going forwardmodel.getSpaceByName(row["model_space_name"]).get
to get the corresponding space, and create a new lighting object (you need to create a OpenStudio::Model::LightsDefinition
and a OpenStudio::Model::Lights
that references it).SecondarySchool Bldg Light
to get the correct number of hours while maintaining the same profile. For this, I leverage openstudio-standards' ScheduleRuleset.annual_equivalent_full_load_hrs. I store the initial eflh = light_sch.annual_equivalent_full_load_hrs
. For the lighting objects, I clone this schedule, get the ScheduleDay attached to it (it helps if there's only one...) and scale each value entered accordingly by looping on day_sch.times.with_index
(new_value = old_value * daily_h * 365 / eflh.to_f
). #{light_sch.name} - #{daily_h} hrs/day
, so that in the loop I can test whether I already created it or not to avoid duplicating it many times unnecessarily.