Processing sub-lists

I’m working on a graph that will (eventually) find all Doors in a project, then find their nearby Rooms,and set a flag if the Door number doesn’t match either Room number.

I can add in a Number Slider and using it, step through my Doors one at a time & it works fine. But when I try to pass the entire List, it blows up.

I’ve got some other logic that does the actual comparison stripped out of this definition just to simplify it.

In the attached graph, I’m replacing my “matching” test logic with just pulling the first Room Number & forcing it into the Door Number.

The pink Groups are basically just info, the purple stuff will eventually be replace with the matching logic & the green Group is the Number Slider that I need to replace with some sort of List function. Everything else outside of Groups is the core logic.

The second list at the top is the main List I need to process, but I don’t know how to pull from the sub-lists. There will be at least one item (the door) in any given sub-list, but there may be 0, 1, 2 or more Rooms

DoorNumberTest

I got one step farther.

I inserted a Lisp.map basically between the “Get Surrounding Elements” and fed it the GetItem at Index for each of the three sub-items I want.

More or less where my green box was. (List.Map still hurts my brain!)

 

 

 

 

 

 

But now I’ve got DIFFERENT. It fails at the last node with an “Ambiguous” error:

I THINK that means it’s having a problem with the “Value” input being a Lsit,. because I tried to just pass a Code Block with a single value and it worked, but I’m still not sure what it wants. Maybe another Lisp.Map. But It’s Friday afternoon & the sun is shining. So, I’ll look again Monday.

Ambiguous Error

Hi Dave,

Have you tried the “Door.Rooms” node from clockwork?

Revit_2016-03-12_15-47-42

Thanks, Ditmar! I’ll have to give that a try.

In the meantime, I’ve gotten my graph to work.

Turns out the problem I was having was in the value I was passing in, not the Door list.

This graph collects all of the Doors in a project and compares the Door number to the Rooms Numbers. If the Door Number matches either Room Number, it sets the parameter “DoorMatchesRoom” to true, or to false if it does not matches either. Then I have a Door QA Schedule that show Door #, To Room #, From Room and DoorMatchesRoom.

There’s a Conditional Format that turns the Door # cell red if DoorMatchesRoom is false.

We use CTC’s Superdoor here, so there’s some logic (the Group in green) to filter out just the Superdoors.

Remove that group and pipe the output from the AllDoors directly to the Surrounding Elements (or Door.Rooms) if you don’t use SuperDoor