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

I am trying to set "CoilCoolingWaterPanelRadiant.setCoolingControlTemperatureSchedule" but keep getting 'incompatible ScheduleTypeLimits' error OpenstudioSDK 3.10.0

asked 2026-01-23 16:21:24 -0600

chenkianwee's avatar

updated 2026-01-25 10:02:45 -0600

I am trying to set "CoilCoolingWaterPanelRadiant.setCoolingControlTemperatureSchedule" but keep getting error the following error:

[openstudio.model.ModelObject] <0> For Object of type 'OS:Coil:Cooling:Water:Panel:Radiant' and named 'Clg Pnl Coil' cannot set Schedule Cooling Control Temperature=Medium Office Cooling Setpoint Schedule because it has an incompatible ScheduleTypeLimits

I have a minimum python example here:

from openstudio import model as osmod
model_os = osmod.exampleModel()
sch_rule = model_os.getScheduleRulesetByName('Medium Office Cooling Setpoint Schedule').get()
print(sch_rule)
print(sch_rule.scheduleTypeLimits().get())
clg_pnl = osmod.ZoneHVACCoolingPanelRadiantConvectiveWater(model_os)
clg_pnl.setName("Clg Pnl")
hvaccomp = clg_pnl.coolingCoil()
clg_pnl_coil_optional = hvaccomp.to_CoilCoolingWaterPanelRadiant()
if clg_pnl_coil_optional.is_initialized():
    clg_pnl_coil = clg_pnl_coil_optional.get()
    clg_pnl_coil.setName("Clg Pnl Coil")
    clg_pnl_coil.setControlType('OperativeTemperature')
    clg_pnl_coil.setCoolingControlTemperatureSchedule(sch_rule)

I have checked the 'ScheduleTypeLimits' and the ScheduleTypeRegistry , it should be compatible, I cannot figure out what is wrong. Does anyone has similar experience before? Thanks

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
3

answered 2026-01-27 11:42:14 -0600

chenkianwee's avatar

This is a bug and I have reported it to openstudiosdk github issue. It should be fixed next version. For now you can use this workaround

import openstudio

osmod = openstudio.model.exampleModel()
sch_rule = osmod.getScheduleRulesetByName('Medium Office Cooling Setpoint Schedule').get()
print(sch_rule)
print(sch_rule.scheduleTypeLimits().get())

clg_pnl = openstudio.model.ZoneHVACCoolingPanelRadiantConvectiveWater(osmod)
clg_pnl.setName("Clg Pnl")

hvaccomp = clg_pnl.coolingCoil()
clg_pnl_coil_optional = hvaccomp.to_CoilCoolingWaterPanelRadiant()
if clg_pnl_coil_optional.is_initialized():
    clg_pnl_coil = clg_pnl_coil_optional.get()
    clg_pnl_coil.setName("Clg Pnl Coil")
    clg_pnl_coil.setControlType('OperativeTemperature')
    # isset = clg_pnl_coil.setCoolingControlTemperatureSchedule(sch_rule)
    isset = clg_pnl_coil.setPointer(14, sch_rule.handle())
    print(isset)
edit flag offensive delete link more
1

answered 2026-01-25 11:28:52 -0600

updated 2026-01-25 11:30:55 -0600

I think this explanation applies in your case. I suggest starting with something simpler, then build from there. For instance, first try a simpler (constant) ScheduleRuleset setting like this (WITHOUT explicitly setting the ScheduleTypeLimits), e.g.:

sch = openstudio.model.ScheduleRuleset(model_os)
sch.setName("Clg Pnl Cool CTL temp SCH")
sch.defaultDaySchedule().addValue(openstudio.Time(0, 24, 0, 0), 12.8)
clg_pnl_coil.setCoolingControlTemperatureSchedule(sch)

I tested something similar on the Ruby side (IRB) - no issues.


edit flag offensive delete link more

Comments

Hi @Denis Bourgeois thanks for your answer again! Ur suggestion worked, however the ScheduleTypeLimits auto-populated is dimensionless. I checked ScheduleTypeRegistry again and there is no entry for cooling ctrl sch for radiant panels, is that why it defaults to unitless?

I did a test, I opened a .osm file with radiant cooling panels Openstudio Application. It successfully assigned the schedule that has type limit with temperature unit type? Do you know how to inspect what the GUI is doing, the code base is too big, hard for me to figure out what it is doing under the hood. Thanks!

chenkianwee's avatar chenkianwee  ( 2026-01-26 11:31:19 -0600 )edit

@chenkianwee : I can't answer as to why - sorry. The feature was added via this PR - yet I don't see where the control temperature schedule is set. So I'm assuming some default addition, elsewhere in the App or SDK code.

Denis Bourgeois's avatar Denis Bourgeois  ( 2026-01-26 15:59:10 -0600 )edit
1

Thanks so much for your comments, they are really helpful. I will try to dig deeper and see if I can figure it out, I think I am at my limit of modeling and coding knowledge, so I am not too hopeful, Nevertherless, your suggestion shld be sufficient for me to try to work out something. Thanks !!

chenkianwee's avatar chenkianwee  ( 2026-01-26 16:05:15 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops

Question Tools

1 follower

Stats

Asked: 2026-01-23 16:21:24 -0600

Seen: 70 times

Last updated: yesterday