Skip to content

Commit

Permalink
refactor(filter): make helper methods private
Browse files Browse the repository at this point in the history
  • Loading branch information
marcantondahmen committed Sep 27, 2021
1 parent 8396f4c commit 8411eb1
Showing 1 changed file with 26 additions and 26 deletions.
52 changes: 26 additions & 26 deletions revitron/filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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.
Expand All @@ -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
Expand All @@ -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.
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand All @@ -568,7 +580,7 @@ def getElements(self):
try:
return self.collector.ToElements()
except:
self.all()
self._all()
return self.collector.ToElements()

def getElementIds(self):
Expand All @@ -581,7 +593,7 @@ def getElementIds(self):
try:
return self.collector.ToElementIds()
except:
self.all()
self._all()
return self.collector.ToElementIds()

def noTypes(self):
Expand All @@ -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)

0 comments on commit 8411eb1

Please sign in to comment.