Files
IfcOpenShell/src/ifcopenshell-python/ifcopenshell/api/classification/remove_classification.py
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

25 lines
920 B
Python
Raw Normal View History

class Usecase:
2021-03-25 00:54:42 +01:00
def __init__(self, file, settings={}):
self.file = file
self.settings = {"classification": None}
for key, value in settings.items():
self.settings[key] = value
def execute(self):
references = self.get_references(self.settings["classification"])
for reference in references:
self.file.remove(reference)
self.file.remove(self.settings["classification"])
for rel in self.file.by_type("IfcRelAssociatesClassification"):
if not rel.RelatingClassification:
self.file.remove(rel)
def get_references(self, classification):
results = []
if not classification.HasReferences:
return results
for reference in classification.HasReferences:
results.append(reference)
results.extend(self.get_references(reference))
return results