If ( then , else) in dynamo


#1

Good day,

So I am creating a script that would list windows in the project and the orientation they are facing. I have gotten as far as defining the face azimuth value (0-360 degrees) to each window but now am stuck in trying to convert that to a string output (North, North-East, East etc).

The only way I can imagine that working is through some kind of if,then,else function going “If azimuth is in between 22.5 and 67.5, then North-East, else go to next check…”

Has anyone encountered something similar? How would an if,then,else function with multiple “elses” look in python? How do you check if a number is within a certain range in dynamo?

Regards


#2

Use FamilyInstance.FacingOrientation query the windows Vector and Rhythm package Wall.NorthSouthEastWest Will do the rest.

11-19-2015 1-01-54 PM


#3

Thanks Johnes. Didnt know that node worked for windows (node naming, amirite?). What If I wanted to make that a bit more resolute, ie showing North-East, South-West and other orientations? Going to dig though the Rhythm node, maybe ill have enough brain power to figure it out.


#4

Dmitrijs,

In python to do multiple if else function you can do this:

if somecondition:
</code>    # do something
elif somecondition:
    # do something
elif somecondition:
    # do something
else:
    # do something

in Dynamo you can do a simple if else with a Code Block:

somecondition ? thishappensifTrue : thishappensifFalse

so if you wanted to nest them for multiples you could do this:

somecondition ? thishappensifTrue : someotherCondition ? thishappensifOtherConditionTrue : thishappensifotherconditionFalse

I know its not the prettiest but should work.</pre>

#5

in code blocks you can use if and else as well,

 

if (condition)

{ // do this thing

}

else{

//do that thing

}

you may need to put this inside an imperative block like

 

result = [imperative]{

a = 0;

if(100<200){

a = 10;

}

return = a;

}

(not tested)

 


Window orientation based on true north
#6

Konrad, Michael,

Many thanks. Managed to make it work! And the code block processes a list of 100+ values in seconds, when some of the monstrosities I’ve built out of nodes took ages! Just goes to show the inherent inefficiency of visual programming I guess.

The end result looks like this:

Capture3

 

 

 

 

 

 

 

 

 

Best Regards.


Changing Family Based on Parameter Value