Action for Each Item in a List


I need a little starter in understaning how to deal with Lists in Dynamo.

I have made a triangular grid with LunchBox, now I have a list of lists of 3 points from which I want to create Planes.ByThreePoints.


Now the item Plane.ByThreePoints requires 3 inputs (the three points), I really can’t figure out how to make a plane for each list of 3 points.

I tried with list.Map… but then Plane.ByThreePoints says it doesn’t accept Arrays… so I really need help in understanding how to create a plane for each triangular face?

Thanks in advance!

could you please provide the error message?

but that said, could levels then solve the problem? in your description it looks like nested lists?

if you need further help… Please provide also the dynamo graph as well (.dyn file). It will also be helpful if you can provide a small example model (.rvt file). Keep such a file to the absolute minimum. Meaning, run ‘Purge Unused’ so it is as small as possible and only with content needed for the graph.


here is the error message:
“Warning: One or more of the input types are not matching. Couldn’t find a version of ByThreePoints that takes arguments of type (__array,__array,__array)”

I have got only an educational license at home which I just realised it is only a 1.1 Version.
Is it possible to have the 1.2 or 1.3 Version with Educational license?

Otherwise I will have to wait until I get to work tomorrow.

I attach the definition I was working on lunchBox.dyn (14.4 KB)

I don’t think the levels would help me… I think my problem is that I still think like Grasshopper and I would like an head start on how to start thinking in Dynamo.

From my definition: How can I get a Plane in the middle of every Panel created with LunchBox?
in GH I would use three Dispatch function that would filter the single points from each list of three points.

@Askbid i am not sure if this is what you are trying to achieve. I have attached the definition below. P.S. Yes, since Dynamo is free, you can install version 1.3 even if you only have the educational license of Revit.
lunchBox.dyn (18.8 KB)

Thanks Rex!

All I wanted to do is to create planes from the mapped lists of points.
For some really unknown reason it works with your file but not with mine, despite being exactly the same definition?:
lunchBox2.dyn (19.8 KB)

As you can see my intention was to scale every triangular face from its center (I intended to use the planes as scale plane) but - as you can see from the definition above - once I scale the triangular faces those turn into squares… I am not sure why?
all of this feels very little intuitive :’(

I use Dynamo Studio, I don’t have Revit.
Where can I find a 1.2/1.3 Version for Dynamo Studio?

hi @rexfrancojesse,

What have you done to the graph since yours is working and @Askbid doesnt?

When I take your graph and add ‘Plane.ByThreePoints’ it works, the ‘exactly’ same (@Askbid) graph doesnt!?

@erfajo @Askbid it is not exactly the same. In @Askbid definition, from point x,y,z he created a list and directly connected to planebythreepoints node. You have transpose the points first before you connect to planebythreepoints node.

sorry @rexfrancojesse, but I took your graph and ereased all that and put in the ‘Plane.ByThreePoints’. There is no transpose as far as i can see. Why doesnt I get the error message, thats what I am wondering!?
It is not the solution as such, I am just trying to understand what is happening…

1 Like

@rexfrancojesse it was good to see your transpose example, but it seem to me redundant as you can get the triangular faces directly from the LunchBox Node. Am I missing something or your nodes where simply rebuilding those surfaces?

as @erfajo it is quite weird that Plane.ByThreePoints works with your file but not mine. The lists coming out from the List.Map look exactly the same to me.

Rex any chance you can tell me how you have made it in the previous example? I can not access the 1.3 version with the educational license and I get that problem all the time.

Here I am trying to get only the Y values from a deconstructPoint node (I need it from the block) but GetItemAtIndex node only acts on the second level and not on the first one as it should be.
So instead of getting all the Y values I get only the second points XYZ :weary:

Level1.dyn (3.8 KB)

@Askbid to get item at sub-list, you have to use node for that. see below. thanks.

@Askbid Made some alterations to your original file …
Replaced the lunchbox node with a code block (as I don’t have lunchbox installed), changed the lacing on the GetItemAtIndex nodes and eliminated some List.Map nodes. Should now work.
20170430-1.dyn (16.4 KB)

1 Like

Levels can also solve your problem (and lacing as written by @Vikram_Subbaiah)

@rexfrancojesse thanks, that worked. I got confused somehow with the problems from the previous example, my bad.

@Vikram_Subbaiah thanks for introducing me to lacing in CodeBlock

@Vikram_Subbaiah I actually quite struggle to understand what’s going on with your BlockNode lacing.

Is the little section 7.2 in the manual the only resource avialable to understand that?

@Askbid here is a pretty thorough guide in three parts:


but wow, lots of cognitive overhead in those pages o_0