From 297a513d21ac7ad4aa2569d1d2f67b5216ea0c9b Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 16 Aug 2023 14:05:13 +1000 Subject: [PATCH] Don't strictly require guids / class filters that exist in new facet selector. --- .../ifcopenshell/util/selector.py | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/selector.py b/src/ifcopenshell-python/ifcopenshell/util/selector.py index 2f08dc4049..02bc5fd525 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/selector.py +++ b/src/ifcopenshell-python/ifcopenshell/util/selector.py @@ -141,15 +141,27 @@ class FacetTransformer(lark.Transformer): def instance(self, args): if args[0].data == "globalid": - self.elements.add(self.file.by_guid(args[0].children[0].value)) + try: + self.elements.add(self.file.by_guid(args[0].children[0].value)) + except: + pass else: - self.elements.remove(self.file.by_guid(args[1].children[0].value)) + try: + self.elements.remove(self.file.by_guid(args[1].children[0].value)) + except: + pass def entity(self, args): if args[0].data == "ifc_class": - self.elements |= set(self.file.by_type(args[0].children[0].value)) + try: + self.elements |= set(self.file.by_type(args[0].children[0].value)) + except: + pass else: - self.elements -= set(self.file.by_type(args[1].children[0].value)) + try: + self.elements -= set(self.file.by_type(args[1].children[0].value)) + except: + pass def attribute(self, args): name, comparison, value = args