List.FilterByBoolMask does not work (does not process all elements from lists)

Hey Dynamo folks. I’m stuck. I’ve banged my head around it for some time and it’s time to ask for some help. I have this script that gets some pipes from a linked file and places a revision cloud around them. I try to filter them with List.FilterByBoolMask and it works when I mask it with the Revision Comment parameter, but when I mask it a secont time with System abbreviation, it gets only a part of them. I tried connecting the lists in different ways but it never gets all of the abbreviations i’ve fed it. It gets the first from the list and some other ones. Help :frowning: Example Element Nr 10 is with abbreviation FVF and is obviously in the list but it goes out as false?!?!?

If I change the list order in Varme abbreviation with FVF being on the top it doesn’t take the FVRs
;( u y do dis


Hello @sivin.sivov ,

Could be a list.flatten issue, your listdepth is severial times @3.
Looks like it is not getting all imputs!

KR

Andreas

The problem is a bit further back. Already at the “Filter elements by System Abbreviation” group. The List.FilterByBoolMask does not read all of the pipes with the parameter names I’ve fed it. It only picks the first one and a few others.

1 Like

Hopefully I understood what you are looking for. This is one way you could try this way map the function and just use Anytrue from orchid or clockwork package.

Flattens gives some clarity of the lists, but the problem comes before it. The “==” Node does not give me correct values. for exmaple element 9 and 11 FVR.


@sivin.sivov

This is a lacing problem. You ask to check 7 values and you’re lacing is auto.
What you want is check you’re 7 values in you’re element values (43), you need to use the cross lacing for that or play with levels. And use an anytrue after that.

1 Like

Thanks for that. It was a lacing problem. I’ve apparently forgotten those basics. I’ll go through the primer again. I’m a step forward but my filter still doesn’t give me the true values.

Change List.AnyTrue to @L2

1 Like

Alrigh I fixed that up too but now it gives out all of the elements in the “In” output of List.FilterByBoolMask. == is set to cross product. For some reason it does not separate them by the abbreviation and just places a revision cloud on all elements from the original list.

I can’t read you’re nodes. please zoom in and use this camerabutton:

image

Previous post updated.
I really appreciate that you are spending time dealing with my noob issues.
Thanks

I need some outputs, pls send you’re script and a sample file of rvt.

Here’s the script and the link model with the pipes. I letf only the “Varme” pipes on the 3rd floor for building 1244 (the one I was running the script above in the previous attempts).

Do you have the linked file too?
I can take a look tomorrow, please use my name as tag.

You need to play with the levels in list any try. you receive 7 items but you need 43 items.
Maybe you can use a list.flatten at longest and play after that with the list.anytrue (guess @L2)

We are all humans :wink:

In the wetransfer file is the script and the Linked file. You could make any new project and link it in. I could send a copy of the central file as well if needed?

You call an other rvt link in your script… I dont have that file

The link I’m getting the pipes from is with code block x[3], because I have linked an architectural model and a construction model aswell. The link file with the pipes im trying to get is the one that is in the wetransfer. You could make a new revit file and link in the model I’ve sent and set the codeblock to x[0]

ps: I’ve been playing with levels all mornig, still no sustainable outputs.