2021-01-12 16:39:01 +11:00
|
|
|
import ifcopenshell
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Usecase:
|
2021-03-27 19:14:32 +11:00
|
|
|
def __init__(self, file, **settings):
|
2021-01-12 16:39:01 +11:00
|
|
|
self.file = file
|
|
|
|
|
self.settings = {"opening": None, "element": None}
|
|
|
|
|
for key, value in settings.items():
|
|
|
|
|
self.settings[key] = value
|
|
|
|
|
|
|
|
|
|
def execute(self):
|
2021-09-21 17:29:28 +10:00
|
|
|
fills_voids = self.settings["element"].FillsVoids
|
|
|
|
|
|
|
|
|
|
if fills_voids:
|
|
|
|
|
if fills_voids[0].RelatingOpeningElement == self.settings["opening"]:
|
|
|
|
|
return
|
|
|
|
|
self.file.remove(fills_voids[0])
|
|
|
|
|
|
2021-09-09 21:27:23 +10:00
|
|
|
self.file.create_entity(
|
|
|
|
|
"IfcRelFillsElement",
|
|
|
|
|
**{
|
|
|
|
|
"GlobalId": ifcopenshell.guid.new(),
|
|
|
|
|
"RelatingOpeningElement": self.settings["opening"],
|
|
|
|
|
"RelatedBuildingElement": self.settings["element"],
|
|
|
|
|
}
|
|
|
|
|
)
|