Create Beams using Grid and Suface

Hi, my graph creates curves along a surface from gridlines.
Instead of using a revit surface i’m trying to use a sphere i created in dynamo but when changing it from the revit surface to dynamo object it stops working.

also i’d really like to just create flat beams from the intersections of the grids projected onto the surface.

any help would be great Thanks

what is the error message?

You need a line (curve) for the placement of the beam. The intersect result of a Solid (Sphere) and a Surface is a Surface, not a Line.

When asking a question, show the error and expand the relevant previews.

Also: If you want “flat” Beams, just find the intersect point of the grids themselves, project those down onto the sphere, draw lines between those points, place beams on those lines. No need for the help geometry creation.

Sorry, here’s the Error message and expanded columns.

CreateBeams_Using_Grids_and_Surface.dyn (57.4 KB)

Cheers for the reply, i’ve uploaded a new screenshot and the graph aswell.

Ok, do you know how i make surface sphere, having a quick look for the node i can’t seem to find it, and haven’t had much luck when trying to google it.

for the flat beams that’s exactly what i’m trying to do, just i’m struggling to find a node that projects intersection points rather than lines.


Run your intersect earlier, just between the Grids. That will result in points. Then look at the Point.Project Node to pull them onto your Solid Sphere. No need to make the Sphere into a Surface.

Your error is 100% you putting surfaces into an input that needs curves as shown.

See if that helps

Beam.dyn (10.7 KB)


This would work, but will result in curved beams. But this is the idea I was talking about.

Great thanks,
Geometry.Explode solves the first part, just by adding that, It projects all the beams onto the surface as expected. Using the Curve.Pullontosurface, only projected one curve.

Now to try getting the beams straight/faceted at intersections along the surface.

So, you don’t want a curve? do you need straight?

can you shao the sample of expectation in Revit?

Sphere Projection.rvt (2.2 MB) Thanks, This looks like what i want, I’ve rewritten the graph to match your’s, but it only seems to pick up the central intersection point, and not all the individual intersections.

CreateBeams_Using_Grids_and_Surface_Faceted.dyn (49.8 KB)

How we have got it would help me a lot. it’s very close to being exactly what i want, except i would prefer the members to not be curved, i have tried to show in the image. i have tried to show the red lines being straight members going from point to point. does that help explain it?

Learn about lacing and take a better look at the intersect Node. It is set to Cross Product.

Oh yeah i remember a tutorial now where i had to change the lacing, After flicking through the different options to see their results, i realised that this graph was picking up points along a gridline that shouldn’t be in there, When i removed 3 gridlines from the project that shouldn’t be used for this geometry, it stops picking up any intersections. I’m a bit out of my depth here.

CreateBeams_Using_Grids_and_Surface_Faceted.dyn (49.8 KB)

The filtering is not making groups, check the results from the direction Nodes. I just did a quick split in horizontal vs rest of grids to get the intersection groups.
Think about what property you would need in your shape to split the Grids into 2 groups to intersect against each other. Or just try to Intersect all grids v all grids, but then you need to sort the point later to get the start/end points of where you would need the beams.

Give it a try, and explain how you would try to solve it.

I’ve switched the Vector.x for Vector.Y, more out of trial and error and a guess, and i have now picked up all the intersection points, this is with cross product lacing, but the point.Project don’t seem to be doing anything.
BTW thank you for showing me through this, it’s much appreciated.

Why do you say Point.Project is not working when you can see the points in the resulting list?

Why are you putting a list of points into an input requiring a line/curve?