class archetypal.template.OpaqueMaterial(Name, Conductivity, SpecificHeat, SolarAbsorptance=0.7, ThermalEmittance=0.9, VisibleAbsorptance=0.7, Roughness='Rough', Cost=0, Density=1, MoistureDiffusionResistance=50, EmbodiedCarbon=0.45, EmbodiedEnergy=0, TransportCarbon=0, TransportDistance=0, TransportEnergy=0, SubstitutionRatePattern=None, SubstitutionTimestep=20, **kwargs)[source]

Use this component to create a custom opaque material.


Initialize an opaque material.

  • Name (str) – The name of the material.

  • Conductivity (float) – A number representing the conductivity of the material in W/m-K. This is essentially the heat flow in Watts across one meter thick of the material when the temperature difference on either side is 1 Kelvin. Modeling layers with conductivity higher than 5.0 W/(m-K) is not recommended.

  • SpecificHeat (float) – A number representing the specific heat capacity of the material in J/kg-K. This is essentially the number of joules needed to raise one kg of the material by 1 degree Kelvin. Only values of specific heat of 100 or larger are allowed. Typical ranges are from 800 to 2000 J/(kg-K).

  • SolarAbsorptance (float) – An number between 0 and 1 that represents the absorptance of solar radiation by the material. The default is set to 0.7, which is common for most non-metallic materials.

  • ThermalEmittance (float) – An number between 0 and 1 that represents the thermal absorptance of the material. The default is set to 0.9, which is common for most non-metallic materials. For long wavelength radiant exchange, thermal emissivity and thermal emittance are equal to thermal absorptance.

  • VisibleAbsorptance (float) – An number between 0 and 1 that represents the absorptance of visible light by the material. The default is set to 0.7, which is common for most non-metallic materials.

  • Roughness (str) – A text value that indicated the roughness of your material. This can be either “VeryRough”, “Rough”, “MediumRough”, “MediumSmooth”, “Smooth”, and “VerySmooth”. The default is set to “Rough”.

  • Density (float) – A number representing the density of the material in kg/m3. This is essentially the mass of one cubic meter of the material.

  • MoistureDiffusionResistance (float) – the factor by which the vapor diffusion in the material is impeded, as compared to diffusion in stagnant air [%].

  • **kwargs – keywords passed to parent constructors.

property Conductivity

Get or set the conductivity of the material [W/m-K].

property Density

Get or set the density of the material [J/kg-K].

property Roughness

Get or set the roughness of the material.


choices are: “VeryRough”, “Rough”, “MediumRough”, “MediumSmooth”, “Smooth”, “VerySmooth”.

property SolarAbsorptance

Get or set the solar absorptance of the material [-].

property SpecificHeat

Get or set the specific heat of the material [J/(kg-K)].

property ThermalEmittance

Get or set the thermal emittance of the material [-].

property VisibleAbsorptance

Get or set the visible absorptance of the material [-].

property Category

Get or set the Category attribute.

property Comments

Get or set the object comments.

property Cost

Get or set the cost of the material [$].

property DataSource

Get or set the datasource of the object.

property EmbodiedCarbon

Get or set the embodied carbon of the material [kgCO2/kg].

property EmbodiedEnergy

Get or set the embodied energy of the material [MJ/kg].

property MoistureDiffusionResistance

Get or set the vapor resistance factor of the material [%].

property Name

Get or set the name of the object.

property SubstitutionRatePattern

Get or set the substitution rate pattern of the material.

property SubstitutionTimestep

Get or set the substitution timestep of the material.

property TransportCarbon

Get or set the transportation carbon of the material [kgCO2/kg/km].

property TransportDistance

Get or set the transportation distance of the material [km].

property TransportEnergy

Get or set the transporation energy of the material [MJ/kg/km].

property allow_duplicates

Get or set the use of duplicates [bool].

extend(other, allow_duplicates)

Append other to self. Modify and return self.


other (UmiBase) –



Return type


float_mean(other, attr, weights=None)

Calculates the average attribute value of two floats. Can provide weights.

  • other (UmiBase) – The other UmiBase object to calculate average value with.

  • attr (str) – The attribute of the UmiBase object.

  • weights (iterable, optional) – Weights of [self, other] to calculate weighted average.


Return first object matching equality in the list of instantiated objects.

property id

Get or set the id.

property predecessors

Get or set the predecessors of self.

Of which objects is self made of. If from nothing else then self, return self.


renames self as well as the cached object


name (str) – the name.

classmethod generic(**kwargs)[source]

Return a generic material based on properties of plaster board.


**kwargs – keywords passed to UmiBase constructor.

combine(other, weights=None, allow_duplicates=False)[source]

Combine two OpaqueMaterial objects.

  • weights (list-like, optional) – A list-like object of len 2. If None, the density of the OpaqueMaterial of each objects is used as a weighting factor.

  • other (OpaqueMaterial) – The other OpaqueMaterial object the combine with.


A new combined object made of self + other.

Return type



Return a ref pointer to self.


Return OpaqueMaterial dictionary representation.

classmethod from_dict(data, **kwargs)[source]

Create an OpaqueMaterial from a dictionary.

  • data (dict) – The python dictionary.

  • **kwargs – keywords passed to MaterialBase constructor.

    "$id": "1",
    "MoistureDiffusionResistance": 50.0,
    "Roughness": "Rough",
    "SolarAbsorptance": 0.7,
    "SpecificHeat": 920.0,
    "ThermalEmittance": 0.9,
    "VisibleAbsorptance": 0.7,
    "Conductivity": 0.85,
    "Cost": 0.0,
    "Density": 2000,
    "EmbodiedCarbon": 0.45,
    "EmbodiedEnergy": 0.0,
    "SubstitutionRatePattern": [
    "SubstitutionTimestep": 20.0,
    "TransportCarbon": 0.0,
    "TransportDistance": 0.0,
    "TransportEnergy": 0.0,
    "Category": "Uncategorized",
    "Comments": "",
    "DataSource": null,
    "Name": "Concrete"
classmethod from_epbunch(epbunch, **kwargs)[source]

Create an OpaqueMaterial from an EpBunch.

Note that “Material”, “Material:NoMAss” and “Material:AirGap” objects are supported.


(From EnergyPlus Manual): When a user enters such a “no mass” material into EnergyPlus, internally the properties of this layer are converted to approximate the properties of air (density, specific heat, and conductivity) with the thickness adjusted to maintain the user’s desired R-Value. This allowed such layers to be handled internally in the same way as other layers without any additional changes to the code. This solution was deemed accurate enough as air has very little thermal mass and it made the coding of the state space method simpler.

For Material:AirGap, a similar strategy is used, with the exception that solar properties (solar and visible absorptance and emittance) are assumed null.

  • epbunch (EpBunch) – EP-Construction object

  • **kwargs

to_epbunch(idf, thickness) eppy.bunch_subclass.EpBunch[source]

Convert self to an EpBunch given an idf model and a thickness.

  • idf (IDF) – An IDF model.

  • thickness (float) – the thickness of the material.

    ,                         !- Name
    ,                         !- Roughness
    ,                         !- Thickness
    ,                         !- Conductivity
    ,                         !- Density
    ,                         !- Specific Heat
    0.9,                      !- Thermal Absorptance
    0.7,                      !- Solar Absorptance
    0.7;                      !- Visible Absorptance

The EpBunch object added to the idf model.

Return type



Validate object and fill in missing values.


Some OpaqueMaterial don’t have a default value, therefore an empty string is parsed. This breaks the UmiTemplate Editor, therefore we set a value on these attributes (if necessary) in this validation step.


Get a dict based on the object properties, useful for dict repr.


validate (bool) – If True, try to validate object before returning the mapping.


Get copy of self.