mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 09:21:46 +00:00
New add application usecase, improved add_classification usecase and better defaults for owner settings. Thanks johltn
This commit is contained in:
@@ -2,6 +2,7 @@ import ifcopenshell
|
||||
import ifcopenshell.util.schema
|
||||
import ifcopenshell.util.date
|
||||
|
||||
|
||||
class Usecase:
|
||||
def __init__(self, file, **settings):
|
||||
self.file = file
|
||||
@@ -22,16 +23,21 @@ class Usecase:
|
||||
|
||||
# TODO: should auto date migration be part of the migrator?
|
||||
if self.file.schema == "IFC2X3" and edition_date:
|
||||
result.EditionDate = ifcopenshell.util.date.datetime2ifc(edition_date, "IfcCalendarDate")
|
||||
result.EditionDate = self.file.create_entity(
|
||||
"IfcCalendarDate", **ifcopenshell.util.date.datetime2ifc(edition_date, "IfcCalendarDate")
|
||||
)
|
||||
else:
|
||||
result.EditionDate = ifcopenshell.util.date.datetime2ifc(edition_date, "IfcDate")
|
||||
|
||||
self.file.create_entity("IfcRelAssociatesClassification", **{
|
||||
"GlobalId": ifcopenshell.guid.new(),
|
||||
"RelatedObjects": [self.file.by_type("IfcProject")[0]],
|
||||
"RelatingClassification": result
|
||||
})
|
||||
return # See bug #1272
|
||||
self.file.create_entity(
|
||||
"IfcRelAssociatesClassification",
|
||||
**{
|
||||
"GlobalId": ifcopenshell.guid.new(),
|
||||
"RelatedObjects": [self.file.by_type("IfcProject")[0]],
|
||||
"RelatingClassification": result,
|
||||
}
|
||||
)
|
||||
return result # See bug #1272
|
||||
try:
|
||||
result = self.file.add(self.settings["classification"])
|
||||
except:
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
class Usecase:
|
||||
def __init__(self, file, **settings):
|
||||
self.file = file
|
||||
self.settings = {"attributes": None}
|
||||
for key, value in settings.items():
|
||||
self.settings[key] = value
|
||||
|
||||
def execute(self):
|
||||
return self.file.create_entity("IfcApplication", **self.settings["attributes"])
|
||||
@@ -1,10 +1,13 @@
|
||||
# Note: it is the intent for you to override these with your own functions
|
||||
|
||||
|
||||
def get_person(ifc):
|
||||
pass
|
||||
return ifc.by_type("IfcPerson")[0]
|
||||
|
||||
|
||||
def get_organisation(ifc):
|
||||
pass
|
||||
return ifc.by_type("IfcOrganization")[0]
|
||||
|
||||
|
||||
def get_application(ifc):
|
||||
pass
|
||||
return ifc.by_type("IfcApplication")[0]
|
||||
|
||||
Reference in New Issue
Block a user