Assigning a parameter value from a filtered list

 

 

 

I’ve taken a list and filtered the list based on the value of the Fabrication Service parameter. I would like to assign a parameter value to the items in the filtered list. I tried to assign a string to the comments field but had no success. What am I doing wrong?

 

 

 

 

This is the error message I get. Thoughts?
Error Message

I would try connecting the “Elements” from the node “All Elements Of Category” to “LIST” on the node “ListFilterByBooleanMask” Edit* Currently you are isolating the Parameter Name and inputting that in to your List Filter then connecting that to your elements node on Set Parameter, the issue with this is that the Parameter Name is not an element, it is a parameter of an element. you need a direct connection ,through your List Filter, of an element option of a node to the other element option of a node.

Michael, If I do that it will bypass the filters I’ve setup (fabrication service). I tried what you suggested but got errors. I used the LunchBox Get Parameter Value node because it was actually pulling the text values I wanted. When I use Element.GetParameterValueByName parameter I get numbers. I bet you’re right though…it probably has something to do with the LunchBox node I used.

 

 

 

This For example will isolate all my curtain wall panels with the mark 1013 in list IN and and all the other in the list Out, if I want to assign a value to a the assigned parameter it should then be possible.

1 Like

Thanks for you help Michael. It’s got to be the LunchBox node I used. Anyone have any idea?

 

 

I am using dynamo 9.0 with LunchBox for Dynamo 2015.9.27

 

Edit* I would try reinstalling lunch box and or dynamo

*edit I just realized i am not using a lunchbox node i am using Rhythm

I tried the Rhythm node and get the same as I get from the GetParameterValueByName node. I get a list of numbers. Ahhh! So confused!

 

I did completely uninstall Dynamo and reinstalled the lunchbox package. No luck…

You need to plug an element in to the element input of Element.SetParameterByName. In this photo you are just filtering a parameter value not an element. Since the lists from All.Elements.of.Category and the Paramiter Value nodes are the same you can plug the elements int the List.FilterByBoolMask and it pass the Oxygen elements through.

 

 

 

Steven, I gave that a shot and now get a null value.

Whoops missed the extra level in the list when ran through the Parameter Value node. Move Flatten between Srting.Contains and List.FilterByBoolMask. You will no longer need it after List.FilterByBoolMask. Should be good after that.

I removed the flatten node completely and still have problems. I’m getting the list I want, I’m just having trouble assigning the items in that list a value. I did try to flatten the list as you suggested between string.contains and list.filterbyboolmask and didn’t receive the output I wanted.

Did that fix the Null that you were getting?

What do you mean by did not get the output you wanted?

I guess I’m not following you? The List.FilterByBoolMask is looking for a list, not an element. Correct? I follow what you’re saying regarding filtering a list of parameters and not elements. How do I select the elements with the parameters I want, after filtering, and then apply a parameter value? I notice when I run this the elements aren’t highlighting in Revit. Can you take a look at the files? Thanks for the help!

 

 

Nope sorry. Tried to but do not have 2016 rvt or dynamo 9.1. (on work computer so cannot download it ether) can you post another screen shot?

A list can be anything. List of numbers, letters, elements ex… Some nodes can only except elements, strings or numbers.

 

List.FilterByBoolMask is just going to

In: Pass the items in the list input with a corresponding True values from mask.

Out: Pass the items in the list input with a corresponding False values from mask.

String.Contains is going to create a True / False list based on whether or no the items from str contain the item in Search For.

You took a parameter from and checked if it had Oxygen. The parameter with oxygen are True and the ones without are False. If you place the Elements List, Parameter value list and the Fattened list next to each other they should look like this.

 

0 Element Oxygen True

1 Element Air False

2 Element Oxygen True

3 Element Oxygen True

4 Element Air False

5 Element Oxygen True

Can you show the list of All.Elements.of.Catigory, LunchBox.Get, and String.Contains.

What ate the 2 warnings in the yellow nodes?

Place Flatten after LunchBox.Get before posting the Picture as well.

Sorry I know this is not the best way but at the moment its all I can do.