diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/add_application.py b/src/ifcopenshell-python/ifcopenshell/api/owner/add_application.py index 3fc9234c85..5c86ab78d3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/add_application.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/add_application.py @@ -17,7 +17,7 @@ # along with IfcOpenShell. If not, see . import ifcopenshell.api -from typing import Optional, Any +from typing import Optional, Any, Union def add_application( @@ -53,33 +53,35 @@ def add_application( """ usecase = Usecase() usecase.file = file - usecase.settings = { - "application_developer": application_developer, - "version": version or ifcopenshell.version, - "application_full_name": application_full_name, - "application_identifier": application_identifier, - } - return usecase.execute() + return usecase.execute( + application_developer, + version or ifcopenshell.version, + application_full_name, + application_identifier, + ) class Usecase: file: ifcopenshell.file - settings: dict[str, Any] - def execute(self): - if not self.settings["application_developer"]: - self.settings["application_developer"] = self.create_application_organisation() + def execute( + self, + application_developer: Union[ifcopenshell.entity_instance, None], + version: str, + application_full_name: str, + application_identifier: str, + ) -> ifcopenshell.entity_instance: + if not application_developer: + application_developer = self.create_application_organisation() return self.file.create_entity( "IfcApplication", - **{ - "ApplicationDeveloper": self.settings["application_developer"], - "Version": self.settings["version"], - "ApplicationFullName": self.settings["application_full_name"], - "ApplicationIdentifier": self.settings["application_identifier"], - }, + ApplicationDeveloper=application_developer, + Version=version, + ApplicationFullName=application_full_name, + ApplicationIdentifier=application_identifier, ) - def create_application_organisation(self): + def create_application_organisation(self) -> ifcopenshell.entity_instance: result = self.file.create_entity( "IfcOrganization", **{ @@ -100,5 +102,6 @@ class Usecase: ], }, ) + # 0 IfcOrganization.Identification / Id (IFC2X3). result[0] = "IfcOpenShell" return result