Divide polysurface



I’m trying to create a definition to divide a polysurface, or set of surfaces with equal or at least similar size triangle panels. I can’t use the ‘Lunchbox Triangle grid by face’ on a polysurface.

And if I use it on individual faces, the size of triangles is being determined by the size of the face.

Am I just missing a step and there is an easy way of doing that ?

divide surface2


divide surface

I’ve tried to divide the surface using planes located on subdivided polylines created from intersection with a plane.

(I still need to add the edges of the surface to the whole thing to make it work)



divide surface3







But for some reason, some of the intersection points are missing.


divide surface4







Any ideas?

See if this works for you.

File: triangulation.dyn


Hi Vikram,


Thank you for your post.

Your definition works great on a single surface. It doesn’t work on a polysurface though ( only one face is divided.).

I just can’t figure out how to join the surfaces, so they can be divided equally. Or to create a single surface based on the surfaces I have.




Maciej, Try exploding the polysurface into surfaces and use the below definition.

File: triangulation1.dyn


1 Like

Hi Vikram Subbaiah, how to divide the surface buy UV node in dynamo, when i use this node, it not support element made from dynamo, just support surface when i picked in Revit ???

Hien, It should work.


Thanks Vikram Subbaiah , i used wrong node lol. By the way, do we have node to divide surface by equal distance follow UV dicrection, or we must divide the edge of surface into equal distance and use again node Surface.PointAtParameter ???

Hi Vikram,


Thank you for your help,

I think I was not 100% clear about the problem.

I know how to divide an individual surface.

The problem is that if a surface that is created based on Revit model elements (let’s say extrusion made from 3 connected curves (C1=1000mm length, C2 - 2000mm length and C3 - 3000 length) is split into 3 surfaces. When it’s divided into 10 panels I’ll end up with panels, these panels will have a different size (100, 200 & 300). If I use divide by distance I’ll get errors at the edges of each surface.

What I want to do is to evaluate the whole surface, so each panel is the same size. Is there a way of joining surfaces coming from Revit into one?


I’ve tried recreating the geometry in Dynamo, but again, the size of the panels is based on the underlying geometry.

I’ve used a simple point at parameter function (the same thing happens with Vikram’s definition) And although Dynamo shows a single surface, point locations is based on dimensions of the lines used to create the surface.

(I’m only showing this as an example, the surface that I actually want to subdivide is much more complex)

surface divide

Hi Marciej,

Judging from your initial sample and as long as you’re ok with a slight approximation of the geometry, you could try to re-create the edge of the individual surfaces as a nurbs curve and then extrude that to match your initial curve’s width:


HI Vikram,
I want to devide the surfaces (picture 1) into mesh like picture 2.
How can I make it?


Have you tried using the mesh toolkit? You can split any geometry into a tri or a quad mesh and then extract the faces or the points from that mesh. The only limitation it’s that you do not have a direct control over the size of the faces.

Thanks for your help. Mesh toolkit is a great tool, but I really need to control the size of the faces.

@A.C Here is a possible solution…
If you intend to discuss this further, I’d suggest starting a new thread with an appropriate title. It would help others with similar issues.

surfaceGrid.dyn (12.6 KB)


Hi there.

I just tried using the mesh toolkit. I can’t seem to find how to make quad meshes from my surface.
Only triangular geometries are made. Please see image and dyn file.
Sorry if this is a silly question. Still a dynamo newbie.

Surface Unfold.dyn (67.8 KB)