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

Revision history [back]

The way I've done this is to use an EnergyPlus measure to have the exterior walls reference an SurfaceProperty:ExteriorNaturallyVentedCavity object that the measure adds. The object models an opaque surface (if your double skin is glazed then it won't be appropriate), and also only effects opaque exterior surfaces (i.e. won't cover windows).

The measure creates a SurfaceProperty:OtherSideConditionsModel object:

sideConditionModel = "
SurfaceProperty:OtherSideConditionsModel,
     ScreenCavityModel,          ! OtherSideConditionsModel Name
     GapConvectionRadiation;     ! Type of Modeling used to determine Boundary Conditions
    "

object = OpenStudio::IdfObject::load(sideConditionModel).get
wsObject = workspace.addObject(object)

then loops through the model surfaces to find exterior walls (by construction or surface type or other criteria of your choice), and assigns the other side condition with

surface.setString(4,"OtherSideConditionsModel")
surface.setString(5,"ScreenCavityModel")

and finally adds the ExteriorNaturallyVentedCavity object:

naturallyVentedCavity = "
SurfaceProperty:ExteriorNaturalVentedCavity,
    Vented Cavity Exterior Surface,     ! Name
    ScreenCavityModel,          ! OtherSideConditionsModel Object Name
    0.02,                       ! Area Fraction of Openings
    0.9,                        ! Thermal Emissivity of Exterior Baffle Material
    0.92,                       ! Solar Absorbtivity of Exterior Baffle
    0.05,                       ! Height scale for bouyancy-driven ventilation
    0.05,                       ! Effective Thickness of Cavity Behind Exterior Baffle
    0.97,                       ! Ratio of Actual surface area to projected surface area
    Smooth ,                    ! Roughness of collector
    0.1 ,                       ! Cv, Effectiveness for perforations with respect to Wind
    0.5 ,                       ! Cd, Discharge Coefficient for Openings with respect to bouyancy-driven flow
    #{surface_names.join(",")} ;   ! Surface Name
    "

cavity = OpenStudio::IdfObject::load(naturallyVentedCavity).get
wsCavity = workspace.addObject(cavity)

To find the heat transfer through the object would likely take some creative post-processing, for which I will refer you to the object outputs.

The way I've done this is to use an EnergyPlus measure measure to have the exterior walls reference an SurfaceProperty:ExteriorNaturallyVentedCavity object that the measure adds. The object models an opaque surface (if your double skin is glazed then it won't be appropriate), and also only effects opaque exterior surfaces (i.e. won't cover windows).

The measure creates a SurfaceProperty:OtherSideConditionsModel object:

sideConditionModel = "
SurfaceProperty:OtherSideConditionsModel,
     ScreenCavityModel,          ! OtherSideConditionsModel Name
     GapConvectionRadiation;     ! Type of Modeling used to determine Boundary Conditions
    "

object = OpenStudio::IdfObject::load(sideConditionModel).get
wsObject = workspace.addObject(object)

then loops through the model surfaces to find exterior walls (by construction or surface type or other criteria of your choice), and assigns the other side condition with

surface.setString(4,"OtherSideConditionsModel")
surface.setString(5,"ScreenCavityModel")

and finally adds the ExteriorNaturallyVentedCavity object:

naturallyVentedCavity = "
SurfaceProperty:ExteriorNaturalVentedCavity,
    Vented Cavity Exterior Surface,     ! Name
    ScreenCavityModel,          ! OtherSideConditionsModel Object Name
    0.02,                       ! Area Fraction of Openings
    0.9,                        ! Thermal Emissivity of Exterior Baffle Material
    0.92,                       ! Solar Absorbtivity of Exterior Baffle
    0.05,                       ! Height scale for bouyancy-driven ventilation
    0.05,                       ! Effective Thickness of Cavity Behind Exterior Baffle
    0.97,                       ! Ratio of Actual surface area to projected surface area
    Smooth ,                    ! Roughness of collector
    0.1 ,                       ! Cv, Effectiveness for perforations with respect to Wind
    0.5 ,                       ! Cd, Discharge Coefficient for Openings with respect to bouyancy-driven flow
    #{surface_names.join(",")} ;   ! Surface Name
    "

cavity = OpenStudio::IdfObject::load(naturallyVentedCavity).get
wsCavity = workspace.addObject(cavity)

To find the heat transfer through the object would likely take some creative post-processing, for which I will refer you to the object outputs.