Module Contents#

class ifcopenshell.api.owner.add_address.Usecase(file, assigned_object=None, ifc_class='IfcPostalAddress')#

Add a new telecom or postal address to an organisation or person

A person or organisation may have associated contact details such as phone numbers, mailing addresses, websites, email addresses, and instant messaging handles. This information is critical in recording the contact information of manufacturers and suppliers for facility management, or liable actors.

There are two types of addresses, postal addresses for physical snail mail, and telecom addresses for telephone or internet contact numbers and addresses.

  • assigned_object (ifcopenshell.entity_instance.entity_instance) – The IfcOrganization or IfcPerson the contact address belongs to.

  • ifc_class (str, optional) – Either IfcPostalAddress or IfcTelecomAddress. Defaults to IfcPostalAddress.


The new IfcPostalAddress or IfcTelecomAddress

Return type



organisation = ifcopenshell.api.run("owner.add_organisation", model)

# A snail mail address
postal = ifcopenshell.api.run("owner.add_address", model,
    assigned_object=organisation, ifc_class="IfcPostalAddress")
ifcopenshell.api.run("owner.edit_address", model, address=postal,
    attributes={"Purpose": "OFFICE", "AddressLines": ["42 Wallaby Way"],
    "Town": "Sydney", "Region": "NSW", "PostalCode": "2000"})

# A phone or internet address
telecom = ifcopenshell.api.run("owner.add_address", model,
    assigned_object=organisation, ifc_class="IfcTelecomAddress")
ifcopenshell.api.run("owner.edit_address", model, address=telecom,
    attributes={"Purpose": "OFFICE", "TelephoneNumbers": ["+61432466949"],
    "ElectronicMailAddresses": ["bobthebuilder@example.com"],
    "WWWHomePageURL": "https://thinkmoult.com"})