Module: OpenstudioStandards::Constructions
- Defined in:
- lib/openstudio-standards/constructions/modify.rb,
lib/openstudio-standards/constructions/information.rb,
lib/openstudio-standards/constructions/materials/modify.rb
Defined Under Namespace
Modules: Materials
Modify collapse
-
.construction_add_new_opaque_material(construction, layer_index: 0, name: nil, roughness: nil, thickness: nil, conductivity: nil, density: nil, specific_heat: nil, thermal_absorptance: nil, solar_absorptance: nil, visible_absorptance: nil) ⇒ OpenStudio::Model::StandardOpaqueMaterial
add new material layer to a construction.
-
.construction_set_surface_properties(construction, roughness: nil, thermal_absorptance: nil, solar_absorptance: nil, visible_absorptance: nil) ⇒ OpenStudio::Model::OpaqueMaterial
set construction surface properties.
Information collapse
-
.construction_get_solar_reflectance_index(construction) ⇒ Double
Returns the solar reflectance index of an exposed surface.
-
.construction_set_get_constructions(default_construction_set) ⇒ Array<OpenStudio::Model::Construction>
report names of constructions in a construction set.
Class Method Details
.construction_add_new_opaque_material(construction, layer_index: 0, name: nil, roughness: nil, thickness: nil, conductivity: nil, density: nil, specific_heat: nil, thermal_absorptance: nil, solar_absorptance: nil, visible_absorptance: nil) ⇒ OpenStudio::Model::StandardOpaqueMaterial
add new material layer to a construction
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/openstudio-standards/constructions/modify.rb', line 21 def self.construction_add_new_opaque_material(construction, layer_index: 0, name: nil, roughness: nil, thickness: nil, conductivity: nil, density: nil, specific_heat: nil, thermal_absorptance: nil, solar_absorptance: nil, visible_absorptance: nil) # make new material new_material = OpenStudio::Model::StandardOpaqueMaterial.new(construction.model) if name.nil? new_material.setName("#{construction.name} New Material") else new_material.setName(name) end # set requested material properties new_material.setRoughness(roughness) unless roughness.nil? new_material.setThickness(thickness) unless thickness.nil? new_material.setConductivity(conductivity) unless conductivity.nil? new_material.setDensity(density) unless density.nil? new_material.setSpecificHeat(specific_heat) unless specific_heat.nil? new_material.setThermalAbsorptance(thermal_absorptance) unless thermal_absorptance.nil? new_material.setSolarAbsorptance(solar_absorptance) unless solar_absorptance.nil? new_material.setVisibleAbsorptance(visible_absorptance) unless visible_absorptance.nil? # add material to construction construction.insertLayer(layer_index, new_material) return new_material end |
.construction_get_solar_reflectance_index(construction) ⇒ Double
Returns the solar reflectance index of an exposed surface. On a scale of 0 to 100, standard black is 0, and standard white is 100. The calculation derived from ASTM E1980 assuming medium wind speed.
12 13 14 15 16 17 18 19 20 |
# File 'lib/openstudio-standards/constructions/information.rb', line 12 def self.construction_get_solar_reflectance_index(construction) exposed_material = construction.to_LayeredConstruction.get.getLayer(0) solar_absorptance = exposed_material.to_OpaqueMaterial.get.solarAbsorptance thermal_emissivity = exposed_material.to_OpaqueMaterial.get.thermalAbsorptance x = (20.797 * solar_absorptance - 0.603 * thermal_emissivity) / (9.5205 * thermal_emissivity + 12.0) sri = 123.97 - 141.35 * x + 9.6555 * x * x return sri end |
.construction_set_get_constructions(default_construction_set) ⇒ Array<OpenStudio::Model::Construction>
report names of constructions in a construction set
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/openstudio-standards/constructions/information.rb', line 26 def self.construction_set_get_constructions(default_construction_set) construction_array = [] # populate exterior surfaces if default_construction_set.defaultExteriorSurfaceConstructions.is_initialized default_surface_constructions = default_construction_set.defaultExteriorSurfaceConstructions.get construction_array << default_surface_constructions.floorConstruction.get if default_surface_constructions.floorConstruction.is_initialized construction_array << default_surface_constructions.wallConstruction.get if default_surface_constructions.wallConstruction.is_initialized construction_array << default_surface_constructions.roofCeilingConstruction.get if default_surface_constructions.roofCeilingConstruction.is_initialized end # populate interior surfaces if default_construction_set.defaultInteriorSurfaceConstructions.is_initialized default_surface_constructions = default_construction_set.defaultInteriorSurfaceConstructions.get construction_array << default_surface_constructions.floorConstruction.get if default_surface_constructions.floorConstruction.is_initialized construction_array << default_surface_constructions.wallConstruction.get if default_surface_constructions.wallConstruction.is_initialized construction_array << default_surface_constructions.roofCeilingConstruction.get if default_surface_constructions.roofCeilingConstruction.is_initialized end # populate ground surfaces if default_construction_set.defaultGroundContactSurfaceConstructions.is_initialized default_surface_constructions = default_construction_set.defaultGroundContactSurfaceConstructions.get construction_array << default_surface_constructions.floorConstruction.get if default_surface_constructions.floorConstruction.is_initialized construction_array << default_surface_constructions.wallConstruction.get if default_surface_constructions.wallConstruction.is_initialized construction_array << default_surface_constructions.roofCeilingConstruction.get if default_surface_constructions.roofCeilingConstruction.is_initialized end # populate exterior sub-surfaces if default_construction_set.defaultExteriorSubSurfaceConstructions.is_initialized default_subsurface_constructions = default_construction_set.defaultExteriorSubSurfaceConstructions.get construction_array << default_subsurface_constructions.fixedWindowConstruction.get if default_subsurface_constructions.fixedWindowConstruction.is_initialized construction_array << default_subsurface_constructions.operableWindowConstruction.get if default_subsurface_constructions.operableWindowConstruction.is_initialized construction_array << default_subsurface_constructions.doorConstruction.get if default_subsurface_constructions.doorConstruction.is_initialized construction_array << default_subsurface_constructions.glassDoorConstruction.get if default_subsurface_constructions.glassDoorConstruction.is_initialized construction_array << default_subsurface_constructions.overheadDoorConstruction.get if default_subsurface_constructions.overheadDoorConstruction.is_initialized construction_array << default_subsurface_constructions.skylightConstruction.get if default_subsurface_constructions.skylightConstruction.is_initialized construction_array << default_subsurface_constructions.tubularDaylightDomeConstruction.get if default_subsurface_constructions.tubularDaylightDomeConstruction.is_initialized construction_array << default_subsurface_constructions.tubularDaylightDiffuserConstruction.get if default_subsurface_constructions.tubularDaylightDiffuserConstruction.is_initialized end # populate interior sub-surfaces if default_construction_set.defaultInteriorSubSurfaceConstructions.is_initialized default_subsurface_constructions = default_construction_set.defaultInteriorSubSurfaceConstructions.get construction_array << default_subsurface_constructions.fixedWindowConstruction.get if default_subsurface_constructions.fixedWindowConstruction.is_initialized construction_array << default_subsurface_constructions.operableWindowConstruction.get if default_subsurface_constructions.operableWindowConstruction.is_initialized construction_array << default_subsurface_constructions.doorConstruction.get if default_subsurface_constructions.doorConstruction.is_initialized construction_array << default_subsurface_constructions.glassDoorConstruction.get if default_subsurface_constructions.glassDoorConstruction.is_initialized construction_array << default_subsurface_constructions.overheadDoorConstruction.get if default_subsurface_constructions.overheadDoorConstruction.is_initialized construction_array << default_subsurface_constructions.skylightConstruction.get if default_subsurface_constructions.skylightConstruction.is_initialized construction_array << default_subsurface_constructions.tubularDaylightDomeConstruction.get if default_subsurface_constructions.tubularDaylightDomeConstruction.is_initialized construction_array << default_subsurface_constructions.tubularDaylightDiffuserConstruction.get if default_subsurface_constructions.tubularDaylightDiffuserConstruction.is_initialized end # populate misc surfaces construction_array << default_construction_set.interiorPartitionConstruction.get if default_construction_set.interiorPartitionConstruction.is_initialized construction_array << default_construction_set.spaceShadingConstruction.get if default_construction_set.spaceShadingConstruction.is_initialized construction_array << default_construction_set.buildingShadingConstruction.get if default_construction_set.buildingShadingConstruction.is_initialized construction_array << default_construction_set.siteShadingConstruction.get if default_construction_set.siteShadingConstruction.is_initialized return construction_array end |
.construction_set_surface_properties(construction, roughness: nil, thermal_absorptance: nil, solar_absorptance: nil, visible_absorptance: nil) ⇒ OpenStudio::Model::OpaqueMaterial
set construction surface properties
65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/openstudio-standards/constructions/modify.rb', line 65 def self.construction_set_surface_properties(construction, roughness: nil, thermal_absorptance: nil, solar_absorptance: nil, visible_absorptance: nil) surface_material = construction.to_LayeredConstruction.get.getLayer(0) new_material = OpenstudioStandards::Constructions::Materials.opaque_material_set_surface_properties(surface_material, roughness: roughness, thermal_absorptance: thermal_absorptance, solar_absorptance: solar_absorptance, visible_absorptance: visible_absorptance) return new_material end |