mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
Fix #1547.
This commit is contained in:
@@ -1,9 +1,68 @@
|
||||
import ifcopenshell.api
|
||||
|
||||
|
||||
class Usecase:
|
||||
def __init__(self, file, **settings):
|
||||
self.file = file
|
||||
self.settings = {"attributes": None}
|
||||
self.settings = {
|
||||
"application_developer": None,
|
||||
"version": "0.6.0",
|
||||
"application_full_name": "IfcOpenShell",
|
||||
"application_identifier": "IfcOpenShell",
|
||||
}
|
||||
for key, value in settings.items():
|
||||
self.settings[key] = value
|
||||
|
||||
def execute(self):
|
||||
return self.file.create_entity("IfcApplication", **self.settings["attributes"])
|
||||
if not self.settings["application_developer"]:
|
||||
self.settings["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"],
|
||||
},
|
||||
)
|
||||
|
||||
def create_application_organisation(self):
|
||||
return self.file.create_entity(
|
||||
"IfcOrganization",
|
||||
**{
|
||||
"Name": "IfcOpenShell",
|
||||
"Description": "IfcOpenShell is an open source (LGPL) software library that helps users and software developers to work with the IFC file format.",
|
||||
"Roles": [
|
||||
self.file.create_entity("IfcActorRole", **{"Role": "USERDEFINED", "UserDefinedRole": "CONTRIBUTOR"})
|
||||
],
|
||||
"Addresses": [
|
||||
self.file.create_entity(
|
||||
"IfcTelecomAddress",
|
||||
**{
|
||||
"Purpose": "USERDEFINED",
|
||||
"UserDefinedPurpose": "WEBPAGE",
|
||||
"Description": "The main webpage of the software collection.",
|
||||
"WWWHomePageURL": "https://ifcopenshell.org",
|
||||
},
|
||||
),
|
||||
self.file.create_entity(
|
||||
"IfcTelecomAddress",
|
||||
**{
|
||||
"Purpose": "USERDEFINED",
|
||||
"UserDefinedPurpose": "WEBPAGE",
|
||||
"Description": "The BlenderBIM Add-on webpage of the software collection.",
|
||||
"WWWHomePageURL": "https://blenderbim.org",
|
||||
},
|
||||
),
|
||||
self.file.create_entity(
|
||||
"IfcTelecomAddress",
|
||||
**{
|
||||
"Purpose": "USERDEFINED",
|
||||
"UserDefinedPurpose": "REPOSITORY",
|
||||
"Description": "The source code repository of the software collection.",
|
||||
"WWWHomePageURL": "https://github.com/IfcOpenShell/IfcOpenShell.git",
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
|
||||
@@ -2,12 +2,15 @@
|
||||
|
||||
|
||||
def get_person(ifc):
|
||||
return ifc.by_type("IfcPerson")[0]
|
||||
people = ifc.by_type("IfcPerson") or [None]
|
||||
return people [0]
|
||||
|
||||
|
||||
def get_organisation(ifc):
|
||||
return ifc.by_type("IfcOrganization")[0]
|
||||
organisations = ifc.by_type("IfcOrganization") or [None]
|
||||
return organisations[0]
|
||||
|
||||
|
||||
def get_application(ifc):
|
||||
return ifc.by_type("IfcApplication")[0]
|
||||
applications = ifc.by_type("IfcApplication") or [None]
|
||||
return applications[0]
|
||||
|
||||
Reference in New Issue
Block a user