Write docs for owner API module

This commit is contained in:
Dion Moult
2022-12-14 15:58:31 +11:00
parent 05cd11ae12
commit a5a1ef2e8e
24 changed files with 696 additions and 103 deletions
@@ -18,11 +18,49 @@
class Usecase:
def __init__(self, file, **settings):
def __init__(self, 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.
:param assigned_object: The IfcOrganization or IfcPerson the contact
address belongs to.
:type assigned_object: ifcopenshell.entity_instance.entity_instance
:param ifc_class: Either IfcPostalAddress or IfcTelecomAddress. Defaults
to IfcPostalAddress.
:type ifc_class: str, optional
:return: The new IfcPostalAddress or IfcTelecomAddress
:rtype: ifcopenshell.entity_instance.entity_instance
Example::
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"})
"""
self.file = file
self.settings = {"assigned_object": None, "ifc_class": "IfcPostalAddress"}
for key, value in settings.items():
self.settings[key] = value
self.settings = {"assigned_object": assigned_object, "ifc_class": ifc_class}
def execute(self):
address = self.file.create_entity(self.settings["ifc_class"], "OFFICE")