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.
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
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 )
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.
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 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.
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
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!
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. )