Files
IfcOpenShell/src/ifcopenshell-python/ifcopenshell/api/owner/settings.py
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

35 lines
1015 B
Python
Raw Normal View History

# Note: it is the intent for you to override these with your own functions
users = {}
def get_person(ifc):
2021-07-04 09:54:49 +10:00
people = ifc.by_type("IfcPerson") or [None]
return people[0]
def get_organisation(ifc):
2021-07-04 09:54:49 +10:00
organisations = ifc.by_type("IfcOrganization") or [None]
return organisations[0]
def get_application(ifc):
2021-07-04 09:54:49 +10:00
applications = ifc.by_type("IfcApplication") or [None]
return applications[0]
def get_user(ifc):
person = get_person(ifc)
organisation = get_organisation(ifc)
if not person or not organisation:
return
key = f"{person.id()}-{organisation.id()}"
user = users.get(key)
if not user:
for element in ifc.by_type("IfcPersonAndOrganization"):
if element.ThePerson == person and element.TheOrganization == organisation:
users[key] = element
user = element
if not user:
return ifc.create_entity("IfcPersonAndOrganization", ThePerson=person, TheOrganization=organisation)
return user