Lacing Cross Product - incorrect result


I’m getting familiar with Dynamo by doing the Tutorial exercises. I’m now at Unit 2 Family by Point Part 2, and I’m not getting the demonstrated result of using the cross product lacing variable in this lesson. I should see a grid of points on the selected surface instead of the diagonal line seen when the shortest lacing variable is selected. Instead the visual results are the same. The drop down table below the node does show a change in listing format but it shows three levels of sub listing instead of the two visible in the tutorial.

I’ve had to work with both Dynamo 0.9 and the current version of Dynamo because how the nodes were named or acted changed from when some of the lessons were written. I have found solutions in the forum for some of those but not for this one.

Dynamo 1.2.1 Revit 16


A screenshot would help to help you.


Posted below are a comparison of the “cross product” and “shortest” table results between the Demo and my own exercise. As can be seen even the tables from the “shortest” results differ, I start off with one more sub level than the Demo. I have to break this up into four posts since new users are only allowed one image per post.

This is the “cross product” result from the Demo



This is the “cross product” result that I get


This is the “shortest” result from the Demo


This is the “shortest” result I get


It would be interesting to see the surface and the U an V value list you are using. If the surface is one single surface and the U and V values are regular one level lists yor result is strange…Could you attach the file?


Hi Joan,

I will send the file, it will be tomorrow as I am home now. The surface is a simple rectangle with the goal to populate it with a rectangular array of square panels. If this issue has not come up before I would think it means I’ve got a mismatched library of nodes, but we’ll see.



It may just be the surface that you are using. The Revit surface could have been created in a template file that has a different orientation to the one in the demo, or the surface is created in a different way.

It looks like Dynamo is just extracting the value along a different axis first.

A list re-organisation may give you the exact same results?


I’m not allowed to upload files as a new user so I’m going to reply to Joan with attached dyn.

You could confirm the Revit Surface by downloading the advanced course materials and opening the corresponding revit project. All the files are linked from the learning Dynamo page.



File attached.

Jim Kelly-Rand

617 423 0100 x239


177 Milk Street Boston, MA 02109

Part-02-Family-By-Point_DynamoFor.dyn (11.3 KB)


The Select Face Node is giving you a list with one surface. You can get the result you want by usin GetItemAtIndex so that it will become an element. You could also do it with the input port level selector.

Next time you ask for help I would advise you to use Export WorkSpace as image (in the File tab) to show all the script and some Watch nodes…


My bad, I found the answer here with the search terms in category Geometry “surface.pointAtParameter”:
[Spreading points on a line]

Adding the flatten node to each output of the code block [U,V] did the trick, and now there are a grid of points defined on the surface. As seen here in this image of my workspace:

Well the image export did not capture the background but you can see the flatten nodes at the end of the code block.