From 8411eb1a69c6fd72f706197c9377c3ea888d17ef Mon Sep 17 00:00:00 2001 From: Marc Anton Dahmen Date: Mon, 27 Sep 2021 18:00:53 +0200 Subject: [PATCH] refactor(filter): make helper methods private --- revitron/filter.py | 52 +++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/revitron/filter.py b/revitron/filter.py index 33a1233..e72a90c 100644 --- a/revitron/filter.py +++ b/revitron/filter.py @@ -64,7 +64,7 @@ def __init__(self, scope=None): self.collector = revitron.DB.FilteredElementCollector(revitron.DOC) self.scope = scope - def all(self): + def _all(self): """ This is just a helper filter that doesn't modify the collection at all to allow for getting all elements of an instance without actually applying any filter before. @@ -82,7 +82,7 @@ def all(self): self.collector = self.collector.WherePasses(f) return self - def applyFilter(self, filterRule, paramName, value, evaluator, invert=False): + def _applyFilter(self, filterRule, paramName, value, evaluator, invert=False): """ Applies a filter. @@ -108,7 +108,7 @@ def applyFilter(self, filterRule, paramName, value, evaluator, invert=False): revitron.DOC, self.getElementIds() ) - _filter.parameterFilter(rule, invert) + _filter._parameterFilter(rule, invert) filters.append(_filter) except: pass @@ -122,6 +122,18 @@ def applyFilter(self, filterRule, paramName, value, evaluator, invert=False): else: self.collector.IntersectWith(filters[i].collector) + def _parameterFilter(self, rule, invert=False): + """ + Applies a parameter filter. + + Args: + rule (object): The filter rule object + invert (boolean): Inverts the filter + """ + import revitron + parameterFilter = revitron.DB.ElementParameterFilter(rule, invert) + self.collector = self.collector.WherePasses(parameterFilter) + def byIntersection(self, element): """ Reduces the set of elements to the ones that are intersecting a given element. @@ -237,7 +249,7 @@ def byNumberIsGreater(self, paramName, value, invert=False): """ import revitron value = float(value) - self.applyFilter( + self._applyFilter( revitron.DB.FilterDoubleRule, paramName, value, @@ -266,7 +278,7 @@ def byNumberIsGreaterOrEqual(self, paramName, value, invert=False): """ import revitron value = float(value) - self.applyFilter( + self._applyFilter( revitron.DB.FilterDoubleRule, paramName, value, @@ -294,7 +306,7 @@ def byNumberIsEqual(self, paramName, value, invert=False): """ import revitron value = float(value) - self.applyFilter( + self._applyFilter( revitron.DB.FilterDoubleRule, paramName, value, @@ -322,7 +334,7 @@ def byNumberIsLess(self, paramName, value, invert=False): """ import revitron value = float(value) - self.applyFilter( + self._applyFilter( revitron.DB.FilterDoubleRule, paramName, value, @@ -350,7 +362,7 @@ def byNumberIsLessOrEqual(self, paramName, value, invert=False): """ import revitron value = float(value) - self.applyFilter( + self._applyFilter( revitron.DB.FilterDoubleRule, paramName, value, @@ -424,7 +436,7 @@ def byStringContains(self, paramName, value, invert=False): object: The collector """ import revitron - self.applyFilter( + self._applyFilter( revitron.DB.FilterStringRule, paramName, value, @@ -475,7 +487,7 @@ def byStringEquals(self, paramName, value, invert=False): object: The collector """ import revitron - self.applyFilter( + self._applyFilter( revitron.DB.FilterStringRule, paramName, value, @@ -527,7 +539,7 @@ def byStringBeginsWith(self, paramName, value, invert=False): object: The collector """ import revitron - self.applyFilter( + self._applyFilter( revitron.DB.FilterStringRule, paramName, value, @@ -549,7 +561,7 @@ def byStringEndsWith(self, paramName, value, invert=False): object: The collector """ import revitron - self.applyFilter( + self._applyFilter( revitron.DB.FilterStringRule, paramName, value, @@ -568,7 +580,7 @@ def getElements(self): try: return self.collector.ToElements() except: - self.all() + self._all() return self.collector.ToElements() def getElementIds(self): @@ -581,7 +593,7 @@ def getElementIds(self): try: return self.collector.ToElementIds() except: - self.all() + self._all() return self.collector.ToElementIds() def noTypes(self): @@ -603,15 +615,3 @@ def onlyTypes(self): """ self.collector = self.collector.WhereElementIsElementType() return self - - def parameterFilter(self, rule, invert=False): - """ - Applies a parameter filter. - - Args: - rule (object): The filter rule object - invert (boolean): Inverts the filter - """ - import revitron - parameterFilter = revitron.DB.ElementParameterFilter(rule, invert) - self.collector = self.collector.WherePasses(parameterFilter)