Replace true by condition, how?

Hello,

i create some loops for booleans i want to replace them by a string, but how?

#Template 
#DraxlA
#19.07.2023
import clr
import sys 

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *

clr.AddReference('System')
from System.Collections.Generic import List

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument

#functions
def tolist(x):
    if hasattr(x,'__iter__'): return x
    else: return [x]

#collector
collector = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Doors)
all_elements = collector.WhereElementIsNotElementType().ToElements()

onHand = [ i.HandFlipped for i in all_elements] # is LE
onFace = [ i.FacingFlipped for i in all_elements] # is LE
bothFaceHand = [ i.FacingFlipped and i.HandFlipped for i in all_elements] # is RE
bothHandFace = [ i.HandFlipped and i.FacingFlipped for i in all_elements] #  is RE
#rest is RE

_onHand = [p for p in onHand if i.Replace(True,"LE")]

OUT = _onHand

Replace does not work
grafik

KR

Andreas

Is this what you are trying to do?
[True for p in onHand if p == "LE" else p]
or
["LE" for p in onHand if p == True else p]

1 Like

@Mike.Buttery

grafik

idea is to create a “flipmatrix” so you can see if door is correct string value vs visual representation!

KR

Andreas

So my understanding is that if facing and handing are different (True / False | False / True) = RE
This is an XOR logic which would imply a comprehension like this
["LE" for i in all_elements if i.FacingFlipped == i.HandFlipped else "RE"]
True/True and False/False evaluate as True whereas True/False and False/True evaluate as False

1 Like