Module Contents

ifcopenshell.api.resource.add_resource_time.add_resource_time(file, resource=None) None

Adds the time that a resource is used for

For labour and equipment resources, the total duration that the resource is used for may be stored. This may either be input manually or calculated parametrically. This is known as the resource time, and may be used to calculate other parameters like resource utilisation.


resource (ifcopenshell.entity_instance) – The IfcConstructionResource to record time for.


The newly created IfcResourceTime

Return type:



# Add our own crew
crew = ifcopenshell.api.run("resource.add_resource", model, ifc_class="IfcCrewResource")

# Add some labour to our crew.
labour = ifcopenshell.api.run("resource.add_resource", model,
    parent_resource=crew, ifc_class="IfcLaborResource")

# Labour resource is quantified in terms of time.
quantity = ifcopenshell.api.run("resource.add_resource_quantity", model,
    resource=labour, ifc_class="IfcQuantityTime")

# Store the unit time used in hours
ifcopenshell.api.run("resource.edit_resource_quantity", model,
    physical_quantity=quantity, attributes={"TimeValue": 8.0})

# Let's imagine we've used the resource for 2 days.
time = ifcopenshell.api.run("resource.add_resource_time", model, resource=labour)
ifcopenshell.api.run("resource.edit_resource_time", model,
    resource_time=time, attributes={"ScheduleWork": "PT16H"})