Skip to content

Commit fd6f2f3

Browse files
authored
Diff can be restricted by elements that match Selector query
1 parent a4d0378 commit fd6f2f3

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/ifcdiff/ifcdiff.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import ifcopenshell.util.element
3030
import ifcopenshell.util.placement
3131
import ifcopenshell.util.classification
32+
import ifcopenshell.util.selector
3233
from deepdiff import DeepDiff
3334

3435

@@ -50,8 +51,13 @@ def diff(self):
5051

5152
self.precision = self.get_precision()
5253

53-
old_elements = set(e.GlobalId for e in self.old.by_type("IfcProduct"))
54-
new_elements = set(e.GlobalId for e in self.new.by_type("IfcProduct"))
54+
if self.filter_elements:
55+
selector = ifcopenshell.util.selector.Selector()
56+
old_elements = set(e.GlobalId for e in selector.parse(self.old, self.filter_elements))
57+
new_elements = set(e.GlobalId for e in selector.parse(self.new, self.filter_elements))
58+
else:
59+
old_elements = set(e.GlobalId for e in self.old.by_type("IfcProduct"))
60+
new_elements = set(e.GlobalId for e in self.new.by_type("IfcProduct"))
5561

5662
self.deleted_elements = old_elements - new_elements
5763
self.added_elements = new_elements - old_elements

0 commit comments

Comments
 (0)