Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I succeed to get schedule for equipment aviablity schedule. I am really appreciate the effort of OS team for user supporting. Thank a lots. I got schedule as follow : first try loop all thermal zone to get all space. For each space, i start to check if they have instance load assigned directly to this zone so they must have schedule come then. i get all spaceType and find around Spacetype. At the end i got schedule and assign it to equipment schedule. i add many info registers to get checking each step. Maybe it's not an efficient way but it really helps me to understand better about Ruby syntax and program structure. However, there are some point, i still want to optimize my measure :

  1. in case have many people loads in one zone or one space, i want to observe all people loads and schedule sets in each zone . The repeated if loop is not good in this case.

a)Is there any better approach for this work ?

b) My approach for central ventilation airloop schedule is making a new schedule which incorporate all Numberofpeople schedule in each zone. For this work in E+, it pretty easy with EMS and constant schedule every time zero people count in the building system is off. In OS , we need to setup schedule before running simulation, so i want to know that whether OS SDK has any method or general configuration for observing schedule.

Thank

 model.getThermalZones.each do |zone|
  runner.registerInfo(" Check #{zone.name}")
  zone.spaces.each do |space|
    runner.registerInfo(" Check #{space.name}")
    if not space.defaultScheduleSet.empty?  
        spc_default_schset = space.defaultScheduleSet
        runner.registerInfo(" #{space.name} has schedule set #{spc_default_schset.name} ")
    else
        runner.registerInfo(" #{space.name} has no schedule set")
    end
    if not space.people.empty?
        space_people = space.people.get
        runner.registerInfo(" #{space.name} has people load #{space_people.name} ")
        if not Space_people.numberofPeopleSchedule.empty?
            runner.registerInfo(" #{space.name} has occupancy schedule")
            space_sch_occ = space_people.numberofPeopleSchedule
        else
            runner.registerInfo(" #{space.name} has no occupancy schedule")
        end
    else 
        runner.registerInfo(" #{space.name} has no people load")
    end
    if space.spaceType.is_initialized
        spc_type = space.spaceType.get
        runner.registerInfo(" #{space.name} has space type #{spc_type.name} in zone #{zone.name}")
        i = 0
        spc_type.people.each do |spc_type_people|
            i= i+1
            if spc_type_people.numberofPeopleSchedule.is_initialized
                @@schd = spc_type_people.numberofPeopleSchedule.get
                runner.registerInfo("  in zone #{zone.name} has #{spc_type_people.name} has people schedule #{@@schd.name} ") 
            else
                runner.registerInfo("in zone #{zone.name} has #{spc_type_people.name} people load but has no schedule ") 
            end
        end
        if i == 0
        runner.registerInfo("in zone #{zone.name} has no people load ") 
        end

I succeed to get schedule for equipment aviablity schedule. I am really appreciate the effort of OS team for user supporting. Thank a lots. I got schedule as follow : first try loop all thermal zone to get all space. For each space, i start to check if they have instance load assigned directly to this zone so they must have schedule come then. there. i get all spaceType space.spaceType and find around Spacetype. it. At the end i got schedule and assign it to equipment schedule. i add many info registers to get checking each step. Maybe it's not an efficient way but it really helps me to understand better about Ruby syntax and program structure. However, there are some point, points which i still want to optimize my measure :

  1. in case have many people loads in one zone or one space, i want to observe all people loads and schedule sets in each zone . The repeated if loop is not good in this case.

a)Is there any better approach for this work ?

b) My approach for central ventilation airloop schedule is making a new schedule which incorporate all Numberofpeople schedule in each zone. For this work in E+, it pretty easy with EMS and constant schedule every time zero people count in the building system is off. In OS , we need to setup schedule before running simulation, so i want to know that whether OS SDK has any method or general configuration for observing schedule.

Thank

 model.getThermalZones.each do |zone|
  runner.registerInfo(" Check #{zone.name}")
  zone.spaces.each do |space|
    runner.registerInfo(" Check #{space.name}")
    if not space.defaultScheduleSet.empty?  
        spc_default_schset = space.defaultScheduleSet
        runner.registerInfo(" #{space.name} has schedule set #{spc_default_schset.name} ")
    else
        runner.registerInfo(" #{space.name} has no schedule set")
    end
    if not space.people.empty?
        space_people = space.people.get
        runner.registerInfo(" #{space.name} has people load #{space_people.name} ")
        if not Space_people.numberofPeopleSchedule.empty?
            runner.registerInfo(" #{space.name} has occupancy schedule")
            space_sch_occ = space_people.numberofPeopleSchedule
        else
            runner.registerInfo(" #{space.name} has no occupancy schedule")
        end
    else 
        runner.registerInfo(" #{space.name} has no people load")
    end
    if space.spaceType.is_initialized
        spc_type = space.spaceType.get
        runner.registerInfo(" #{space.name} has space type #{spc_type.name} in zone #{zone.name}")
        i = 0
        spc_type.people.each do |spc_type_people|
            i= i+1
            if spc_type_people.numberofPeopleSchedule.is_initialized
                @@schd = spc_type_people.numberofPeopleSchedule.get
                runner.registerInfo("  in zone #{zone.name} has #{spc_type_people.name} has people schedule #{@@schd.name} ") 
            else
                runner.registerInfo("in zone #{zone.name} has #{spc_type_people.name} people load but has no schedule ") 
            end
        end
        if i == 0
        runner.registerInfo("in zone #{zone.name} has no people load ") 
        end

I succeed to get schedule for equipment aviablity schedule. I am really appreciate the effort of OS team for user supporting. Thank a lots. I got schedule as follow : first try loop all thermal zone to get all space. For each space, i start to check if they have instance load assigned directly to this zone so they must have schedule there. i get space.spaceType and find around it. At the end i got schedule and assign it to equipment schedule. i add many info registers to get checking each step. Maybe it's not an efficient way but it really helps me to understand better about Ruby syntax and program structure. However, there are some points which i still want to optimize my measure :

  1. in case have many people loads in one zone or one space, i want to observe all people loads and schedule sets in each zone . The repeated if loop is not good in this case.

a)Is there any better approach for this work ?

b) My approach for central ventilation airloop schedule is making a new schedule which incorporate all Numberofpeople schedule in each zone. For this work in E+, it pretty easy with EMS and constant schedule every time zero people count in the building system is off. In OS , we need to setup schedule before running simulation, so i want to know that whether OS SDK has any method or general configuration for observing schedule. 2. I try to make QC code for result by checking the the equipment method in thermalzone : link text but because of Model::object properties, im not able to loop through all equipment with zone.equipments.each do |equip|. How should i call a Model::object method ?

Thank

 model.getThermalZones.each do |zone|
  runner.registerInfo(" Check #{zone.name}")
  zone.spaces.each do |space|
    runner.registerInfo(" Check #{space.name}")
    if not space.defaultScheduleSet.empty?  
        spc_default_schset = space.defaultScheduleSet
        runner.registerInfo(" #{space.name} has schedule set #{spc_default_schset.name} ")
    else
        runner.registerInfo(" #{space.name} has no schedule set")
    end
    if not space.people.empty?
        space_people = space.people.get
        runner.registerInfo(" #{space.name} has people load #{space_people.name} ")
        if not Space_people.numberofPeopleSchedule.empty?
            runner.registerInfo(" #{space.name} has occupancy schedule")
            space_sch_occ = space_people.numberofPeopleSchedule
        else
            runner.registerInfo(" #{space.name} has no occupancy schedule")
        end
    else 
        runner.registerInfo(" #{space.name} has no people load")
    end
    if space.spaceType.is_initialized
        spc_type = space.spaceType.get
        runner.registerInfo(" #{space.name} has space type #{spc_type.name} in zone #{zone.name}")
        i = 0
        spc_type.people.each do |spc_type_people|
            i= i+1
            if spc_type_people.numberofPeopleSchedule.is_initialized
                @@schd = spc_type_people.numberofPeopleSchedule.get
                runner.registerInfo("  in zone #{zone.name} has #{spc_type_people.name} has people schedule #{@@schd.name} ") 
            else
                runner.registerInfo("in zone #{zone.name} has #{spc_type_people.name} people load but has no schedule ") 
            end
        end
        if i == 0
        runner.registerInfo("in zone #{zone.name} has no people load ") 
        end

I succeed to get schedule for equipment aviablity schedule. I am really appreciate the effort of OS team for user supporting. Thank a lots. I got schedule as follow : first try loop all thermal zone to get all space. For each space, i start to check if they have instance load assigned directly to this zone so they must have schedule there. i get space.spaceType and find around it. At the end i got schedule and assign it to equipment schedule. i add many info registers to get checking each step. Maybe it's not an efficient way but it really helps me to understand better about Ruby syntax and program structure. However, there are some points which i still want to optimize my measure :

  1. in case have many people loads in one zone or one space, i want to observe all people loads and schedule sets in each zone . The repeated if loop is not good in this case.

a)Is there any better approach for this work ?

b) My approach for central ventilation airloop schedule is making a new schedule which incorporate all Numberofpeople schedule in each zone. For this work in E+, it pretty easy with EMS and constant schedule every time zero people count in the building system is off. In OS , we need to setup schedule before running simulation, so i want to know that whether OS SDK has any method or general configuration for observing schedule. 2.

  1. I try to make QC code for result by checking the the equipment method in thermalzone : link text but because of Model::object properties, im not able to loop through all equipment with zone.equipments.each do |equip|. How should i call a Model::object method ?

Thank

 model.getThermalZones.each do |zone|
  runner.registerInfo(" Check #{zone.name}")
  zone.spaces.each do |space|
    runner.registerInfo(" Check #{space.name}")
    if not space.defaultScheduleSet.empty?  
        spc_default_schset = space.defaultScheduleSet
        runner.registerInfo(" #{space.name} has schedule set #{spc_default_schset.name} ")
    else
        runner.registerInfo(" #{space.name} has no schedule set")
    end
    if not space.people.empty?
        space_people = space.people.get
        runner.registerInfo(" #{space.name} has people load #{space_people.name} ")
        if not Space_people.numberofPeopleSchedule.empty?
            runner.registerInfo(" #{space.name} has occupancy schedule")
            space_sch_occ = space_people.numberofPeopleSchedule
        else
            runner.registerInfo(" #{space.name} has no occupancy schedule")
        end
    else 
        runner.registerInfo(" #{space.name} has no people load")
    end
    if space.spaceType.is_initialized
        spc_type = space.spaceType.get
        runner.registerInfo(" #{space.name} has space type #{spc_type.name} in zone #{zone.name}")
        i = 0
        spc_type.people.each do |spc_type_people|
            i= i+1
            if spc_type_people.numberofPeopleSchedule.is_initialized
                @@schd = spc_type_people.numberofPeopleSchedule.get
                runner.registerInfo("  in zone #{zone.name} has #{spc_type_people.name} has people schedule #{@@schd.name} ") 
            else
                runner.registerInfo("in zone #{zone.name} has #{spc_type_people.name} people load but has no schedule ") 
            end
        end
        if i == 0
        runner.registerInfo("in zone #{zone.name} has no people load ") 
        end

I succeed to get schedule for equipment aviablity schedule. I am really appreciate the effort of OS team for user supporting. Thank a lots. I got schedule as follow : first try loop all thermal zone to get all space. For each space, i start to check if they have instance load assigned directly to this zone so they must have schedule there. i get space.spaceType and find around it. At the end i got schedule and assign it to equipment schedule. i add many info registers to get checking each step. Maybe it's not an efficient way but it really helps me to understand better about Ruby syntax and program structure. However, there are some points which i still want to optimize my measure :

  1. in case have many people loads in one zone or one space, i want to observe all people loads and schedule sets in each zone . The repeated if loop is not good in this case.

a)Is there any better approach for this work ?

b) My approach for central ventilation airloop schedule is making a new schedule which incorporate all Numberofpeople schedule in each zone. For this work in E+, it pretty easy with EMS and constant schedule every time zero people count in the building system is off. In OS , we need to setup schedule before running simulation, so i want to know that whether OS SDK has any method or general configuration for observing schedule.

  1. I try to make QC code for result by checking the the equipment method in thermalzone : link text but because of Model::object properties, im not able to loop through all equipment with zone.equipments.each do |equip|. How should i call a Model::object method ?

Thank

 model.getThermalZones.each do |zone|
  runner.registerInfo(" Check #{zone.name}")
  zone.spaces.each do |space|
    runner.registerInfo(" Check #{space.name}")
    if not space.defaultScheduleSet.empty?  
        spc_default_schset = space.defaultScheduleSet
        runner.registerInfo(" #{space.name} has schedule set #{spc_default_schset.name} ")
    else
        runner.registerInfo(" #{space.name} has no schedule set")
    end
    if not space.people.empty?
        space_people = space.people.get
        runner.registerInfo(" #{space.name} has people load #{space_people.name} ")
        if not Space_people.numberofPeopleSchedule.empty?
            runner.registerInfo(" #{space.name} has occupancy schedule")
            space_sch_occ = space_people.numberofPeopleSchedule
        else
            runner.registerInfo(" #{space.name} has no occupancy schedule")
        end
    else 
        runner.registerInfo(" #{space.name} has no people load")
    end
    if space.spaceType.is_initialized
        spc_type = space.spaceType.get
        runner.registerInfo(" #{space.name} has space type #{spc_type.name} in zone #{zone.name}")
        i = 0
        spc_type.people.each do |spc_type_people|
            i= i+1
            if spc_type_people.numberofPeopleSchedule.is_initialized
                @@schd = spc_type_people.numberofPeopleSchedule.get
                runner.registerInfo("  in zone #{zone.name} has #{spc_type_people.name} has people schedule #{@@schd.name} ") 
            else
                runner.registerInfo("in zone #{zone.name} has #{spc_type_people.name} people load but has no schedule ") 
            end
        end
        if i == 0
        runner.registerInfo("in zone #{zone.name} has no people load ") 
        end