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

Revision history [back]

You are correct, OpenStudio only supports a subset of the ShadingControlTypes as EnergyPlus. If you set a field to an invalid value, you won't know it unless you specifically check it like this or echo the value back by getting what you just set.

var = object.setValue("SomethingBad")
if var == false
  puts "did not accept value"
end

The following Shading Control Types are supported by OpenStudio: Always On Always Off OnIfScheduleAllows OnIfHighSolarOnWindow

Here is a link to the type EnergyPlus supports.

I don't know if changing the IDD will work, it might, but an easier approach might be to alter the ShadingControlType with an EnergyPlus measure, as shown in the code snippet below.

workspace.getObjectsByType("WindowProperty:ShadingControl".to_IddObjectType).each do |shading_control|
  shading_control.setString(3,"OnIfHighZoneAirTemperature") # shading control type field
end

Feel free to add this as a feature request.

You are correct, OpenStudio only supports a subset of the ShadingControlTypes as EnergyPlus. If you set a field to an invalid value, you won't know it unless you specifically check it like this or echo the value back by getting what you just set.

var = object.setValue("SomethingBad")
if var == false
  puts "did not accept value"
end

The following Shading Control Types are supported by OpenStudio: OpenStudio:

  • Always On On
  • Always Off OnIfScheduleAllows Off
  • OnIfScheduleAllows
  • OnIfHighSolarOnWindow

Here is a link to the type types EnergyPlus supports.

I don't know if changing the IDD will work, it might, but an easier approach might be to alter the ShadingControlType with an EnergyPlus measure, as shown in the code snippet below. Because this happens after the OSM is translated to an IDF you have access to EnergyPlus supports.

workspace.getObjectsByType("WindowProperty:ShadingControl".to_IddObjectType).each do |shading_control|
  shading_control.setString(3,"OnIfHighZoneAirTemperature") # shading control type field
end

Feel free to add this as a feature request.

You are correct, OpenStudio only supports a subset of the ShadingControlTypes as EnergyPlus. If you set a field to an invalid value, you won't know it unless you specifically check it like this or echo the value back by getting what you just set.

var = object.setValue("SomethingBad")
if var == false
  puts "did not accept value"
end

The following Shading Control Types are supported by OpenStudio:

  • Always On
  • Always Off
  • OnIfScheduleAllows
  • OnIfHighSolarOnWindow

Here is a link to the types EnergyPlus supports.

I don't know if changing the IDD will work, it might, but an easier approach might be to alter the ShadingControlType with an EnergyPlus measure, as shown in the code snippet below. Because this happens after the OSM is translated to an IDF you have access to anything EnergyPlus supports.

workspace.getObjectsByType("WindowProperty:ShadingControl".to_IddObjectType).each do |shading_control|
  shading_control.setString(3,"OnIfHighZoneAirTemperature") # shading control type field
end

Feel free to add this as a feature request.