module OpenstudioStandards::Constructions::Materials
The Materials
module provides methods create, modify, and get information about Materials
The Materials
module provides methods create, modify, and get information about Materials
Public Class Methods
Return the thermal conductance for an OpenStudio Material object, a parent object to all kinds of materials
@param material [OpenStudio::Model::Material] OpenStudio Material object @param temperature [Double] Temperature in Celsius, used for gas or gas mixture thermal conductance @return [Double] thermal conductance in W/m^2*K
# File lib/openstudio-standards/constructions/materials/information.rb, line 14 def self.material_get_conductance(material, temperature: 0.0) conductance = nil conductance = material.to_OpaqueMaterial.get.thermalConductance unless material.to_OpaqueMaterial.empty? # ShadingMaterial conductance = material.to_Shade.get.thermalConductance unless material.to_Shade.empty? conductance = material.to_Screen.get.thermalConductance unless material.to_Screen.empty? conductance = 9999.9 unless material.to_Blind.empty? # Glazing conductance = material.to_SimpleGlazing.get.uFactor unless material.to_SimpleGlazing.empty? conductance = material.to_StandardGlazing.get.thermalConductance unless material.to_StandardGlazing.empty? conductance = material.to_RefractionExtinctionGlazing.get.thermalConductance unless material.to_RefractionExtinctionGlazing.empty? # Gas # Convert C to K temperature_k = temperature + 273.0 conductance = material.to_Gas.get.getThermalConductivity(temperature_k) unless material.to_Gas.empty? conductance = material.to_GasMixture.get.getThermalConductance(temperature_k) unless material.to_GasMixture.empty? if conductance.nil? OpenStudio.logFree(OpenStudio::Error, 'OpenstudioStandards::Constructions::Materials', "Unable to determinte conductance for material #{material.name}.") return nil end return conductance end
set material surface properties
@param opaque_material [OpenStudio::Model::OpaqueMaterial] OpenStudio OpaqueMaterial object @param roughness [String] surface roughness. Options are ‘VeryRough’, ‘Rough’, ‘MediumRough’,
'MediumSmooth', 'Smooth', and 'VerySmooth'
@param thermal_absorptance [Double] target thermal absorptance @param solar_absorptance [Double] target solar absorptance @param visible_absorptance [Double] target visible absorptance @return [OpenStudio::Model::OpaqueMaterial] OpenStudio OpaqueMaterial object
# File lib/openstudio-standards/constructions/materials/modify.rb, line 47 def self.opaque_material_set_surface_properties(opaque_material, roughness: nil, thermal_absorptance: nil, solar_absorptance: nil, visible_absorptance: nil) unless opaque_material.to_OpaqueMaterial.is_initialized OpenStudio.logFree(OpenStudio::Error, 'OpenstudioStandards::Construction::Materials', "Object #{opaque_material} cannot be cast as an OpaqueMaterial object.") return false end # set requested material properties material = opaque_material.to_OpaqueMaterial.get if material.to_StandardOpaqueMaterial.is_initialized material = material.to_StandardOpaqueMaterial.get material.setRoughness(roughness) unless roughness.nil? elsif material.to_MasslessOpaqueMaterial.is_initialized material = material.to_MasslessOpaqueMaterial.get material.setRoughness(roughness) unless roughness.nil? end material.setThermalAbsorptance(thermal_absorptance) unless thermal_absorptance.nil? material.setSolarAbsorptance(solar_absorptance) unless solar_absorptance.nil? material.setVisibleAbsorptance(visible_absorptance) unless visible_absorptance.nil? return material.to_OpaqueMaterial.get end
change thermal resistance of opaque materials by increasing material thickness, or setting thermal resistance directly for massless or airgap materials.
@param opaque_material [OpenStudio::Model::OpaqueMaterial] OpenStudio OpaqueMaterial object @param thermal_resistance [Double] Target thermal resistance of the material in m^2*K/W @return [OpenStudio::Model::OpaqueMaterial] OpenStudio OpaqueMaterial object
# File lib/openstudio-standards/constructions/materials/modify.rb, line 15 def self.opaque_material_set_thermal_resistance(opaque_material, thermal_resistance) unless opaque_material.to_OpaqueMaterial.is_initialized OpenStudio.logFree(OpenStudio::Error, 'OpenstudioStandards::Construction::Materials', "Object #{opaque_material} cannot be cast as an OpaqueMaterial object.") return false end # edit insulation material material = opaque_material.to_OpaqueMaterial.get if material.to_MasslessOpaqueMaterial.is_initialized material = material.to_MasslessOpaqueMaterial.get material.setThermalResistance(thermal_resistance) elsif material.to_AirGap.is_initialized material = material.to_AirGap.get material.setThermalResistance(thermal_resistance) else starting_thickness = material.thickness target_thickness = starting_thickness * thermal_resistance / material.thermalResistance material.setThickness(target_thickness) end return material.to_OpaqueMaterial.get end