Convert a non-rectangular surface to Nurb surface or Tspline surface

I want to convert a non-rectangular surface to either a Nurbs surface or Tspline surface. I need to do this in order to manipulate the vertices to create a bulge shape for example. However, nurbs surfaces need to be square or rectangular. Is there another way to create Nurbs of Tspline surfaces with non rectangular surfaces?

Current surface to be converted to either nurbs surface or Tspline surface

desired shape but surface is transformed to a square shape and only then points can be translated and converted to nurbs surface

Can you share your source geometry?

You’ll need to extract the desired boundary, project it on the untrimmed nurbs surface and then apply it as a trim:


roof.dyn (49.1 KB)
roof_dynamo.rfa (400 KB)

What @Dimitar_Venkov said as that’s the best solution here.

I’ve tried that method but I need to keep the boundaries flat. This might only work if the bulge height is low enough to keep the edges flat.

At the end I should look this like this which i recreated in Rhino.

But to my knowledge, the patch function in Dynamo only works with a single polycurve. You can’t add multiple cross sections to your selection.

@robertobatista Below is an example with a pentagon as the base, a similar approach might work for you too…
NonRectangularBase.dyn (18.7 KB)


@robertobatista Used your file with a few alterations (changed units to meters and shifted profile to center)
roof_base.rfa (400 KB)
NonRectangularRoofBase.dyn (13.8 KB)


Can you repost both Dynamo definitions? I got on both an error.

Error downloading or running?

1 Like

The file is good. It runs perfect. Thank!!!

The workflow you’ve described is very interesting. I’ve never used TSpline in Dynamo, so I’m currently looking into it and trying to get a bit familiar with the countless nodes available. There are a couple of things that caught my attention though. The roof example you’ve modified and re-posted isn’t quit as smooth as expected. But more over the top doesn’t have a fluid curve. It flattens.

So I’ve done a few simple tests to see how I can fix this. Apparently if you use native TSoline geometry (in this case TsplineSurfaceByPlaneOrigin node) and move the vertices up, you get a smooth almost sin wave like curved surface. Creating the same surface wiht the same dimension from 4 selected curves in Revit, you get the flat top similar to the NonRectangularBase example. Not sure why this happens. Also it seems that circles or round shaped curves can’t be used to create a TSpline curve.

1 Like

Noticed and didn’t like it either.
You might have noticed that I’ve tried to reduce the flatness by subdividing faces repeatedly.

May not be worth spending time looking into this right now. Seems like it’s still being worked on.
The very same definition behaves differently in the current daily build (

Interesting…I’ve uninstalled 2.0 as it’s seems quite slow on my pc, but that was a few months ago. Maybe by now things have improved, so it’s worth reinstalling.