class qsdsan.Construction(ID='', linked_unit=None, item=None, quantity=0.0, quantity_unit='', lifetime=None, lifetime_unit='yr')

Construction activity for cost and environmental impact calculations.

  • ID (str) – ID of this construction activity, a default ID will be given if not provided. If this construction activity is linked to a unit, then the actual ID will be {unit.ID}_{ID}.

  • linked_unit (obj) – Unit that this construction activity is linked to, can be left as None.

  • item (ImpactItem) – Impact item associated with this construction activity.

  • quantity (float) – Quantity of the impact item involved in this construction activity.

  • lifetime (float) – Lifetime of the constructed item.

  • lifetime_unit (str) – Unit of the lifetime.


>>> import qsdsan as qs
>>> # Make impact indicators
>>> GWP = qs.ImpactIndicator('GlobalWarming', alias='GWP', unit='kg CO2-eq')
>>> FEC = qs.ImpactIndicator('FossilEnergyConsumption', alias='FEC', unit='MJ')
>>> # Make impact item
>>> Steel = qs.ImpactItem('Steel', 'kg', GlobalWarming=2.55, FossilEnergyConsumption=0.5)
>>> # Make a construction activity that uses 100 g of steel
>>> steel_100_g = qs.Construction('steel_100_g', item=Steel, quantity=100,
...                               quantity_unit='g')
Construction : steel_100_g
Impact item  : Steel
Lifetime     : None yr
Quantity     : 0.1 kg
Total cost   : None USD
Total impacts:
GlobalWarming (kg CO2-eq)       0.255
FossilEnergyConsumption (MJ)     0.05
>>> # Registry management (construction activities will be auto-registered)
>>> steel_100_g.deregister()
The construction activity "steel_100_g" has been removed from the registry.
>>> steel_100_g.register()
The construction activity "steel_100_g" has been added to the registry.
>>> Construction.clear_registry()
All construction activities have been removed from the registry.
>>> # Clear all registries for testing purpose
>>> from qsdsan.utils import clear_lca_registries
>>> clear_lca_registries()
property ID

Unique identification (str). If set as ‘’, it will choose a default ID.

classmethod clear_registry(print_msg=True)

Remove all existing construction activities from the registry.

property cost

[float] Total cost of this construction item.


Remove this construction activity to the registry.

property impacts

[dict] Total impacts of this construction activity over its lifetime.

property indicators

[tuple] Impact indicators associated with the construction item.

property item

[ImpactItem] The impact item associated with this construction activity.

property lifetime

[float] Lifetime of this construction activity.

property linked_unit

SanUnit The unit that this construction activity belongs to.


This property will be updated upon initialization of the unit.

property price

[float] Unit price of the item.

property quantity

[float] Quantity of this construction item.


Add this construction activity to the registry.


Show basic information about this Construction object.