Hi I am trying to convert a Revit Surface to NURBS one. I don’t understand why when I select the face of my conceptual mass it recognise my surface but as soon as I convert it to NURBS it gives me a quadrilateral surface which is far away from mine.

My selected surface from the conceptual mass is:

The converted surface is:

I am quite aware I cannot have the same exact surface with the NURBS conversion but this one seems to be very far away…

any helps?

Can you explain why you want to do this? As far as I know, surfaces are surfaces so there isn’t much you will be able to do after the conversion which you can’t do now.

Try placing 5 isocurves in only the V direction, then using a Curve.PointAtParameter on the five isocurves to get points in the range 0…1…#5. You should get a list of five lists each of which will contain five points for a total of 25 points organized along the isocurves. If that isn’t the case, not your lacing. Once that is done use a Nurbssurface.ByPoints node to generate a nurbs surface.

Hi Jacob, what I want to do are experiments regrarding NURBS controlling their control points, knots, weights and so on.

What I don’t understand now is the node “Surface.ToNurbsSurface”.

My surface is that kind of arch surface.

This one if converted to NURBS surface becomes a quadrilater.

It makes no sense to me or better what I understand is that the convertion is very very very approximated giving a surface with polynomial degree = 1 instead of 2 and very few control points…

Your surface is a trimmed surface, and Dynamo doesn’t deal with trimmed surfaces at the computational level. Surface.PointAtParameter with parameters [0,0], [0,1], [1,0], [1,1] will lead to similar issues - you’ll get the corner points.

Rebuilding via points as I indicated above is going to be your best bet, as you can control the weights, knots, and the rest directly when creating the Nurbs surface from them.

Thank you very very very much for your answer.

So isn’t there any external plug-in/custom node to convert in the best possible way trimmed surface to non trimmed as far as you know?

Thanks anyway for your answer , it can be a useful way to approximate trimmed surfaces.

Hi @jacob.small sorry if I come back to this topic. Could you explain me what you mean when you say “try placing 5 isocurves in only the V direction”.

I don’t know how to create my surface with your method.

From your original surface, place this node with a direction value of 0 and a parameter value of `0..1..#5`

:

https://dictionary.dynamobim.com/#/Geometry/Curve/Create/ByIsoCurveOnSurface

Then use a Curve.PointAtParameter node to pull points at parameters 0…1…#5 for each curve. You should now have an ordered list of points which can be used to create a nurbs surface using this node:

https://dictionary.dynamobim.com/#/Geometry/NurbsSurface/Create/ByControlPoints

If the shape doesn’t work out try changing the UV direction input to 1, and/or expand the number of points from 5 to n until you get acceptable results.

1 Like