Data Sorting

This post Color and Sorting allowed me to filter rooms of a certain size from a single source and then color them.
Now I am trying to apply that same workflow into a multiple source comparison to do the same thing and have hit a wall.



The structure of your elements list going into your bool needs to match the mask you’re applying :slight_smile:
If you cannot get it to work please post your .dyn, .xlxs and .rvt :slight_smile:

Please refer to files below

First Pass.xlsx (9.3 KB)

Architectural audit.dyn (28.2 KB)

Testing model is too big to upload

Instead of counting the the number of false conditions use a List.Contains node to compact your sublists down to a list of true/false values. Then you can use FilterByBoolMask.

Won’t that just create two longer lists of both True and False
Isolating with LESS THAN should wipe out the smaller rooms
That should only leave me with the six larger ones in this example
My connections and filtering are off


I can’t tell where your data is coming from but after you compare with <= you’re left with sublists containing nulls and either a true or a false boolean. Using List.ContainsItem with a false node will tell you which of those sublists contain false, and therefor are larger than the original size. You can then use that list as your boolean mask (assuming your sublists each represented a room.)

The SET DIFFERENCE node and <= node come back with different counts for some reason

Can you show more of your graph so we can see the values you’re comparing?

Should the LIST.CONTAINS node go in-line with what I have already or bypass the FILTER BY BOOLEAN MASK node?

It is loaded in an earlier response, scroll up

Yes, you will just need to change list levels to @L2 for the list input so that you are checking every sublist.

@L2 ???
What is that?

List Levels allow you change how a node handles list structure. I would do some research on it if you’re not familiar. It’s very important for managing complex lists.

Are you talking about node lacing?

It’s similar, but at the input level rather than the node level.

Now I see what you are talking about
GET ITEM AT INDEX is what I am used to, not list level

Why would this work fine with the <= node, but fail on the SET DIFFERENCE node?
The filter is still working and pulling the numbers


I think you mean GetItemAtIndex vs List.ContainsItem. List.ContainsItem just checks to see if an item exists, not what its index is.

You have sublists with only one element. That’s why you’re getting null values.

So does the other one, but is still works.

<= node has “0-null, 1-null, 2-true”
Get Item at index set to level 2 pulls “true” with no errors
Points to 2 and pulls 2

SetDifference node has “0-## and 1-####”
Get Item at index set to level 1 does pull the numbers, why would the 0-level cause an error
Points to 1 and pulls 1, but also with an error

Doesn’t make sense

Look at sublists 28 and before from SetDifference. They only have one item in them. So when you try to get the item at index 1 (the second item) there’s nothing there, so it returns null.