mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-11 06:18:09 +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.schema
|
||||||
import ifcopenshell.util.date
|
import ifcopenshell.util.date
|
||||||
|
|
||||||
|
|
||||||
class Usecase:
|
class Usecase:
|
||||||
def __init__(self, file, **settings):
|
def __init__(self, file, **settings):
|
||||||
self.file = file
|
self.file = file
|
||||||
@@ -22,16 +23,21 @@ class Usecase:
|
|||||||
|
|
||||||
# TODO: should auto date migration be part of the migrator?
|
# TODO: should auto date migration be part of the migrator?
|
||||||
if self.file.schema == "IFC2X3" and edition_date:
|
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:
|
else:
|
||||||
result.EditionDate = ifcopenshell.util.date.datetime2ifc(edition_date, "IfcDate")
|
result.EditionDate = ifcopenshell.util.date.datetime2ifc(edition_date, "IfcDate")
|
||||||
|
|
||||||
self.file.create_entity("IfcRelAssociatesClassification", **{
|
self.file.create_entity(
|
||||||
"GlobalId": ifcopenshell.guid.new(),
|
"IfcRelAssociatesClassification",
|
||||||
"RelatedObjects": [self.file.by_type("IfcProject")[0]],
|
**{
|
||||||
"RelatingClassification": result
|
"GlobalId": ifcopenshell.guid.new(),
|
||||||
})
|
"RelatedObjects": [self.file.by_type("IfcProject")[0]],
|
||||||
return # See bug #1272
|
"RelatingClassification": result,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return result # See bug #1272
|
||||||
try:
|
try:
|
||||||
result = self.file.add(self.settings["classification"])
|
result = self.file.add(self.settings["classification"])
|
||||||
except:
|
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):
|
def get_person(ifc):
|
||||||
pass
|
return ifc.by_type("IfcPerson")[0]
|
||||||
|
|
||||||
|
|
||||||
def get_organisation(ifc):
|
def get_organisation(ifc):
|
||||||
pass
|
return ifc.by_type("IfcOrganization")[0]
|
||||||
|
|
||||||
|
|
||||||
def get_application(ifc):
|
def get_application(ifc):
|
||||||
pass
|
return ifc.by_type("IfcApplication")[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user