NURBSSURFACE BY POINTS TANGENTS not working

Are you supposed to be able to make a Nurbssurface with 4 points?

So I notice that these points will be really hard to chop up into rows of data that will always make sense, in order for the nurbs surface to work. However, I noticed that the topography node seems to work perfectly and then I can convert it to a surface without having to chop up the list of points. This is exactly what I need, but it also breaks down when I try to do a vertical surface. Is there a way to translate the geometry to make the topo node always work even in vertical orientations?

You could try remapping it to a slightly rotated Coordinate System, and then get the topo and remap it back. Geometry.TranslateFromCoordinateSystem will be your guide. Take things, move them to a new CS, do something with the things, put them back to the previous CS. Could even get really smart about it and use properties of the bounding box of the point collection to define the intermediate coordinate system.

1 Like

Thanks Jacob, Ill try that.

Can you explain this a little further, what would I need an intermediate coordinate system for? And how would I get it…where would I take it from?

Can i group a set of points and create a coordinate system from the group? Im not sure how I would translate many points to one coordinate system, but still keep their corresponding relationship to one another. Any ideas?

This is an example of moving groups of geometry from a localized coordinate system to another one, building and manipulating geometry at the new coordinate system, and moving it back to the old one.!

In your case as you’re building topography elements in Revit, you may need to move the points to the internal origin, create the topography, pull in the topography’s geometric data, move the geometry original point, make new elements or otherwise ‘record’ the result, and delete the topography.

If it sounds like a lot, it’s because it its. Good luck.

1 Like

Awesome thanks! I noticed you used Geometry.Transform and Not Geometry.Translate as you previously mentioned. What is the difference? Ive always wondered.

Previous statement was a typo. :grimacing:

Translate = move. Topology is unchanged but location differs.
Transform = alter by applying new coordinate system. Topology can change.

I dont want the topology to change though. Or do you mean to imply that it changes because I am moving & rotating it?

I’m not sure how you’re building the topology, so I can’t say. I do think that if there is a Revit object creation at play you’re going to want to bring the geometry back to Dynamo (which is doing something to it) so you can transform that geometry into the previous coordinate system and then put the ‘reoriented & relocated’ geometry back into the model as another object.

Correct. thats what I want to do. Its just that when someone says “topology may change” I get worried. I think of like a sphere that gets elongated into an egg. I dont want that to happen to my points durring all this. thats all.

well, if you set the scale of the X vector to 2, things will scale non-uniformily… or if you rotate the X and Y axis you’d rotate it… you have total control how the geometry changes, but it is an option to change it. Where as with translate you only relocate the geometry in space. It’s like picking up your coffee cup and putting it on another spot on your desk, vs picking up your coffee cup, rotating it and setting it on your desk. You make the choice, but in one option you don’t have the choice.

1 Like

Hi Jacob,
It appears that this Geometry.Transform is not working as expected as you have above. Any idea what I am doing wrong? I am getting randomized replacement of the objects when I re-transform them. See below. Thanks in advace!


You want to get the plane and coordinate system from the original point groups. Not the post transformed groups.

Hi Jacob, can you be more specific? Because I am almost certain that is what I did. Thanks in advance!

I can’t be sure. Try build a simpler version with a portion of your data set. Your graph is too disorganized for me to follow.

I think it was a levels issue. I changed the fromCoordinationSystem Level to L1 and kept the lacing at shortest. Counter intuitive, but now it seems to be working.

1 Like