Wall property "Function"

I’m exporting the type parameter “Function” to Excel, but all I get is 0, 1 and so on. I want “Interior”, “Exterior” and so on. What am I missing?


1 Like

@thomasarnoldsson5732 Could you show us your graph with values extended.

Inside CodeBlock write this.

Interior: 0;
Exterior: 1;

0 & 1 usually represent a Yes/No parameter… i don’t know if that is the case with you but if it is then you can do this

Looks like @Mohammadz myself replied at the same time :smile:

1 Like

Just as an extra information… The enumeration returns the different function types :slight_smile:
0 Interior
1 Exterior
2 Foundation
3 Retaining
4 Soffit
5 Core-shaft


Works as long as it is just 2 alternatives (Y/N) but here it is 6 alternatives just as @erfajo wrote.

just make a python script using if, elif and else for all six enumerations

item = IN[0]
lst = []

for i in item :
	if i == 0 :
	elif i == 1 :
	elif i == 2 :
	elif i == 3 :
	elif i == 4 :
	else :

OUT = lst
1 Like

Thanks @erfajo worked great

… and if you don´t like or know python, try this:



Hmmm. In version 1.3.1 running in Revit 2018.3.1, the Function parameter appears to not be accessible. I’ve listed the parameters and the “Function” does not appear in the list. Furthermore, attempting to list the parameter values by name yields blank items in the list. What am I missing here? Does this depend on another package to read, or python? Is it resolved in a later build of Dynamo? I’m hoping it doesn’t.

The parameter name is case-sensitive. Do “Function”, not “function”.

I thought so too, and had tried both based on what others have posted. Listing of parameters does not show any version of it. Hence, the parameter is missing and orherwise inaccessible from what I can see. Any other advice?

Function is a type parameter, not an instance parameter.

Add an Element.Type node (I prefer the one in the Rhythm package) and you should get what you’re after. Alternatively, you could use a code block like this:

WallFunc = a.GetParameterValueByName("Type").GetParameterValueByName("Function");

WallFunc == 0?
    WallFunc == 1?
	WallFunc == 2?
		WallFunc == 3?
			WallFunc == 4?

I would have used the AsValueString() method somehow. (There is probably a node for it in some package). Here is an one liner example python:

OUT = [w.LookupParameter('Function').AsValueString() for w in UnwrapElement(IN[0])]

@JacobSmall, your code block definition works beautifully. The concept and application of conditionals is clear and concise. Thanks so much!

Glad I could help. :smile: