Surface Edit Points Creating Duplicate Points

Hi All,

I’m trying a method to build the top of a tree. Previously I was using mesh but I started down the path of using a brep.


I created the form as a loft and then turned it into points using Surface Edit Points, then made my modification using Noise4D and then rebuilt it using surface from points.

I went through the nodes and found that Surface Edit Points is creating duplicate points, so I ended up with an overlap of surface geometry rather than anything close to the desired outcome of the original lofted form expanded into an organic shape.

I tried to delete duplicate points but then that creates an error with an insufficient U Value.

I’m at the earlier stages of understanding GH, but why is Surface Edit Points creating near duplicate points?

Thank you!

a gh file with internalized data would be helpful. my guess is that you’re dealing with multiple surfaces, each having their own control points, some of which - especially at the edges - would be particularly close

it also seems that you have two overlapping surfaces in the green region

the other possibility is that you’re using a periodic curve in some way , which has some duplicate control points at the ends

difficult to say from a screenshot, but I think the problem originates from this Cull Duplicates?

to be fair, I don’t fully understand why that Cull Duplicates is used, expecially because it comes just after a Rebuild Surface, so if you aren’t happy of the number of points you could just lower those?
That Cull Duplicates might merge points together in many ways, and make the final Rebuild Surface unhappy, as the Rebuild Surface’s “U Count” input comes from the Rebuild Surface, on which you might have a higher count than the ones actually reaching it after the culling

so I believe deleting it (and solving its dependencies) would solve your issue (a GH file would for sure help in this search :smiley: )

Thank you for the feedback. Below is the file, all data is generated in the script.

The Cull Duplicate nodes did create a problem, but it’s not the overlap problem. As I mentioned it created U values to be incorrect. I was playing with cull duplicates because it was creating duplicates or near duplicates in what I understand to be the V direction on the surface.

Noise Generator.gh (24.4 KB)

Thanks again

Scott

yeah, there was something wrong with the output of Surface Edit Points and Surface From Points …

so i wrote two CSharp scripts to do the job

Noise Generator [fixed].gh (30.0 KB)

That’s incredible Adel, I’ll give it a go.

I threw your code into chatGPT in an attempt to understand what you did. As someone with super basic understanding of writing code it’s a bit over my head for the time being.

I’m going to have to learn at some point.

Thank you

The method worked well to create a surface, I baked it to check and it created a surface with knots to modify.

The next part of workflow I want to push it to a revit family. This is where I hit a road block with a node that was just updated this week.

I took the first of the errors and checked what it meant the error could be using ChatGPT. It explained the following options;

1. Ensure Clamped Knot Vectors: Modify the script or use Grasshopper/Rhino functions to ensure the surface’s knot vectors are “clamped.” This means adjusting the knot vector so the start and end knots have the correct multiplicity. Rhino Common, which Grasshopper uses, should have methods to reparameterize or adjust NURBS surfaces to achieve this.
2. Use Reparameterize Tools: Grasshopper might have components or plugins available that can reparameterize NURBS surfaces automatically to ensure their knot vectors are suitable for export to Revit.
3. Check Surface Degree: Verify the degree of your NURBS surface and adjust it if necessary. Sometimes, simplifying the surface (reducing its degree) can make it easier to manage the knot vector requirements.
4. Manual Adjustment: If the surface is not too complex, you might manually adjust the knot vectors using Rhino or Grasshopper’s scripting components. This approach requires a good understanding of how NURBS surfaces work.
5. Use Compatible Components/Plugins: Ensure you’re using the latest versions of any Grasshopper-to-Revit plugins or components, as they might have built-in solutions for these kinds of compatibility issues.
6. Convert to a Compatible Format: If direct conversion keeps failing, consider converting the NURBS surface to another geometry type that Revit handles more gracefully, like a mesh, before transferring. However, this might not always be desirable due to the loss of precision.

Using this ever so slightly better understanding I checked the surface UV degrees, 3 and 3 seemed ok. and I reparamatised the UVs. No luck

Its kind of like when I know 10 words of a spoken language and then someone thinks I can speak it and starts explaining something in detail with a bunch of words that go over my head.

Thank you.

Hi Scott. Using chatGPT is great but it will often mislead. Don’t believe the hype. It is trained to output believable text - in the sense that if you read it, you are made to believe that it is coherent - not truthful text.
When using chat GPT for domain specific tasks, you need to be somewhat of an expert in that domain to catch all the errors.

In any case, try this: pass your brep onto a mesh component (maybe a quadremesh) and pass the mesh onto the revit family

1 Like

Thank you I’ll give that a go.

image
that’s not exactly what i said :rofl:

2 Likes

no idea why it wrote that, a hilarious accidental delete maybe.

I was trying to keep the geometry as brep data for this test as when U pushed a brep to a mesh and then back to a brep it was a lot heavier than a straight brep model. I’m using an array of 5000 models in revit to test how sluggish it gets.

I’ll give the mesh idea a go again and see what happens. Thanks again and be sure to ass your brep onto a mesh!

:slight_smile:

afaik Revit doesn’t really use Nurbs, so it most probably (as in i’m 99.9% certain) converts the nurbs surface to a mesh internally.

the added benefit of doing that conversion in rhino/grasshopper is that you have some control on the fidelity (simpler meshes for performance, denser meshes for quality) and type of mesh (triangular, quadrangular, etc. )

1 Like