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

Revision history [back]

The assertion indicates that a ZoneHVACEquipmentList should always point to a ThermalZone. Somehow you ended up with an orphaned ZoneHVACEquipmentList.

I've got enough experience with the OS SDK to say that I'm 99.9% confident that the reason you ended in this situation is a user error. The ZoneHVACEquipmentList is created when the ThermalZone is instantiated, and should never be created manually. It will also be removed when the ThermalZone is removed. So either you somehow instantiated one manually (the constructor is not private in Ruby), or you edited the OSM file manually, or you called a Workspace level method by mistake (eq.setString(2, "") for eg).

Anyways, look for that orphaned ZoneHVACEquipmentList and remove it. In the Ruby bindings, you can do something like:

 model.getZoneHVACEquipmentLists.select{|e| e.isEmpty(2)}

The assertion indicates that a ZoneHVACEquipmentList ZoneHVACEquipmentList should always point to a ThermalZone. ThermalZone. Somehow you ended up with an orphaned ZoneHVACEquipmentList.ZoneHVACEquipmentList.

I've got enough experience with the OS SDK to say that I'm 99.9% confident that the reason you ended in this situation is a user error. The ZoneHVACEquipmentList ZoneHVACEquipmentList is created when the ThermalZone ThermalZone is instantiated, and should never be created manually. It will also be removed when the ThermalZone ThermalZone is removed. So either you somehow instantiated one manually (the constructor is not private in Ruby), or you edited the OSM file manually, or you called a Workspace Workspace level method (as opposed to Model level method) by mistake (eq.setString(2, "") for eg).

Anyways, look for that orphaned ZoneHVACEquipmentList ZoneHVACEquipmentList and remove it. In the Ruby bindings, you can do something like:

 model.getZoneHVACEquipmentLists.select{|e| e.isEmpty(2)}