class archetypal.template.materials.material_base.MaterialBase(Name, Cost=0, EmbodiedCarbon=0, EmbodiedEnergy=0, SubstitutionTimestep=100, TransportCarbon=0, TransportDistance=0, TransportEnergy=0, SubstitutionRatePattern=None, **kwargs)[source]

A class used to store data linked with the Life Cycle aspect of materials.

For more information on the Life Cycle Analysis performed in UMI, see: -cycle-impact

Initialize a MaterialBase object with parameters.

  • Name (str) – Name of the Material.

  • Cost (float) – The purchase cost of the material by volume ($/m3).

  • EmbodiedCarbon (float) – Represents the GHG emissions through the lifetime of the product (kgCO2/kg).

  • EmbodiedEnergy (float) – Represents all fuel consumption ( Typically from non-renewable sources) which happened through the lifetime of a product (or building), expressed as primary energy (MJ/kg).

  • SubstitutionTimestep (float) – The duration in years of a period of replacement (e.g. There will be interventions in this material type every 10 years).

  • TransportCarbon (float) – The impacts associated with the transport by km of distance and kg of material (kgCO2/kg/km).

  • TransportDistance (float) – The average distance in km from the manufacturing site to the building construction site

  • TransportEnergy (float) – The impacts associated with the transport by km of distance and kg of material (MJ/kg/km).

  • SubstitutionRatePattern (list-like) – A ratio from 0 to 1 which defines the amount of the material replaced at the end of each period of replacement, SubstitutionTimestep (e.g. Every 10 years this cladding will be completely replaced with ratio 1). Notice that you can define different replacement ratios for different consecutive periods, introducing them separated by commas. For example, if you introduce the series “0.1 , 0.1 , 1” after the first 10 years a 10% will be replaced, then after 20 years another 10%, then after 30 years a 100%, and finally the series would start again in year 40.

  • **kwargs – Keywords passed to the UmiBase class. See UmiBase for more details.

property Cost

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

property Category

Get or set the Category attribute.

property Comments

Get or set the object comments.

property DataSource

Get or set the datasource of the object.

property EmbodiedCarbon

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

property Name

Get or set the name of the object.

property allow_duplicates

Get or set the use of duplicates [bool].


Get copy of self.

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.


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


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

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.


Return UmiBase dictionary representation.


Return a ref pointer to self.

property EmbodiedEnergy

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

property SubstitutionTimestep

Get or set the substitution timestep of the material.

property SubstitutionRatePattern

Get or set the substitution rate pattern 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].


Validate object and fill in missing values.