This commit is contained in:
Andrej730
2025-06-16 13:08:44 +05:00
parent a12bb343ca
commit a75f6a5804
@@ -17,7 +17,7 @@
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>. # along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
import ifcopenshell.api import ifcopenshell.api
from typing import Optional, Any from typing import Optional, Any, Union
def add_application( def add_application(
@@ -53,33 +53,35 @@ def add_application(
""" """
usecase = Usecase() usecase = Usecase()
usecase.file = file usecase.file = file
usecase.settings = { return usecase.execute(
"application_developer": application_developer, application_developer,
"version": version or ifcopenshell.version, version or ifcopenshell.version,
"application_full_name": application_full_name, application_full_name,
"application_identifier": application_identifier, application_identifier,
} )
return usecase.execute()
class Usecase: class Usecase:
file: ifcopenshell.file file: ifcopenshell.file
settings: dict[str, Any]
def execute(self): def execute(
if not self.settings["application_developer"]: self,
self.settings["application_developer"] = self.create_application_organisation() 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( return self.file.create_entity(
"IfcApplication", "IfcApplication",
**{ ApplicationDeveloper=application_developer,
"ApplicationDeveloper": self.settings["application_developer"], Version=version,
"Version": self.settings["version"], ApplicationFullName=application_full_name,
"ApplicationFullName": self.settings["application_full_name"], ApplicationIdentifier=application_identifier,
"ApplicationIdentifier": self.settings["application_identifier"],
},
) )
def create_application_organisation(self): def create_application_organisation(self) -> ifcopenshell.entity_instance:
result = self.file.create_entity( result = self.file.create_entity(
"IfcOrganization", "IfcOrganization",
**{ **{
@@ -100,5 +102,6 @@ class Usecase:
], ],
}, },
) )
# 0 IfcOrganization.Identification / Id (IFC2X3).
result[0] = "IfcOpenShell" result[0] = "IfcOpenShell"
return result return result