hi everyone I’m trying to use nesting IFs to handle more conditions to change the value of parameter “b col” according to the values of parameters “GROUND HEIGHT” & “BASEMENT HEIGHT”
to be like this
if(and(BASEMENT HEIGHT=<470,GROUND HEIGHT=<470),20,
if(or(BASEMENT HEIGHT=<500,GROUND HEIGHT=<500),25,
if(or(BASEMENT HEIGHT>500,GROUND HEIGHT>500),30,20)))
thank you in advanced
1 Like
When getting into more complex conditional statements it is definitely a lot simpler if you use Python.
B_height = IN[0]
G_height = IN[1]
if B_height >= 470 and G_height <= 470: OUT = 20
elif B_height <= 500 or G_height <= 500: OUT = 25
elif B_height > 500 or G_height > 500: OUT = [30,20]
I’ve made an assumption that you wanted a list output on the final condition that contains 30 & 20 but feel free to change the code if that was wrong.

5 Likes
@janbarsoum using DS with a Code Block:
6 Likes
thank you so much for your help, I’m trying your solution but output is false value, I feel like I’m doing something wrong, the value is supposed to be 20 not 30
@janbarsoum what is the output of the Element.GetParameterValueByName
node?
Careful to use Elements.Type
node or ʳʰʸᵗʰᵐ|Elements.GetParameterValueByNameTypeOrInstance
to get the type parameters value.(archilab or Rhythm pacakges)
1 Like
Hi @janbarsoum, I have replicated your code and it is returning 20 for me as expected if I input the parameter values of 470 and 300 as integers.
As @Elie.Trad mentioned it would be worthwhile you using ʳʰʸᵗʰᵐ|Elements.GetParameterValueByNameTypeOrInstance
since you are trying to access Type Parameters and showing us the output of the nodes.
2 Likes
@Elie.Trad & @haganjake2 yes you’re right, now it works perfect
thank you so much for your help.
1 Like