HI everyone! Hello, I’m new to using Dynamo. I’m trying to model a shape like the one in the image, and so far I only have those surfaces. Does anyone have an idea of how to create the top part of the cover?
Thanks!
@gvero774 , might be worth a watch.
Create a few more curve profiles and loft.
You could also consider creating multiple sectional profiles at intervals and loft them.
If you can work out the mathematical formula for the desired form, that would be the most elegant approach.
You could attempt something like this later.
n = 50;
u = -75..150..#n;
v = 0..360..#n;
x = ((1.25+Math.Sin(u))<1>*(Math.Cos(v)+0.25))*1.25;
y = (1.25+Math.Sin(u))<1>*Math.Sin(v);
z = Math.Cos(u)*1.5;
NurbsSurface.ByPoints(
Point.ByCoordinates(x<1>,y<1>,z<1><2>));
Amiga @gvero774 Buenas como estas?? The solution of @Vikram_Subbaiah it is correct but it is very advanced because he uses code blocks, maybe something more with nodes will help you to understand better, you just have to reproduce more curves that help to smooth the surface maybe scaling the last of the big ones and moving it a little higher, the idea is to draw cross sections as if they were contour lines, I hope this helps you!
you need check also the order of the list of curves is important!!
Hi everybody! Thanks for the collaboration! I’ve managed to finish the shape.
Does anybody know how to make that triangle pattern on the surface?
what is your ultimate goal? Do you want to keep the geometry in dynamo? Do you plan to move the geometry to some other program?
Hi! I need to use it as a building facade in Revit .
Wow, this looks great! I’ll take a look at it and see what I can do. Thanks!
Attempt to create the pattern manually, you’ll learn a lot in the process.
You could search this forum for similar paneling topics as guidance. Some of the graphs/code might be really old and may not work in current versions of Dynamo, but they should still help in providing some direction.
Amiga @gvero774 Excelent Work, looks like you have a talent for this, apart from @mavs013’s videos (Excellent work my friend ) there are some videos on the channel of Bim guru (@GavinCrump), concerning this topic go to his channel and watch them and leave a like, there are very good; I leave you the link:
I would also like to advise you to do your baby steps by reading the Dynamo manual: https://primer.dynamobim.org/
finally as a good forum practice, if your question is solved, mark the solution so the topic is closed, if you have more doubts about the next step just create a new topic or use the search engine using keywords to find old topics that already have a solution, you usually find interesting things!
This is the result using Lunchbox, the thing is I need all the triangles to be the same size and shape .
Paneling doesn’t really work that way as the geometry on the inside of the curve is smaller than that on the outside. I you move things over to Revit’s adaptive components environment as there are multiple predefined paneling layout methods there for you to play with.
At that point you will need to look into meshing and relaxation algorithms to find those types of equal size outcomes on irregular forms. Rolling ball algorithms etc.
For this personally I’d explore kangaroo for Grasshopper as well as dynamo which has some goals for equal face meshing. Also quadmeshing etc.
In dynamo specifically there’s mesh toolkit but unsure how far it goes in this space as remeshing can be quite computationally complex unless its a simple form.
I dont know how to import my geometry into an adaptative components file
The shape and size of panels below should be more or less similar, but the diagonals won’t align
This is not complete, but should help demonstrate a possible workflow.
// Sample Form
u = -75..150..#25;
v = 0..360..#25;
x = ((1.25+Math.Sin(u))<1>*(Math.Cos(v)+0.25))*12.5;
y = ((1.25+Math.Sin(u))<1>*Math.Sin(v))*10;
z = Math.Cos(u)*12.5;
sf01 = NurbsSurface.ByPoints(Point.ByCoordinates(x<1>,y<1>,(z+11)<1><2>));
// Paneling
is01 = sf01.GetIsoline(0,0..1..#50);
ct01 = (Math.Round(is01.Length/1.5)*2)+1;
pt01 = List.DropItems(List.Sublists(List.TakeEveryNthItem(is01.PointAtParameter(0..1..#List.DropItems(ct01,-1))<1>,2,1)<1>,0..1,1)<1>,-1);
pt02 = List.TakeEveryNthItem(List.DropItems(is01,1).PointAtParameter(0..1..#List.DropItems(ct01,-1))<1>,2,0)<1>;
pt03 = List.Flatten(List.Transpose(List.Transpose([pt01,pt02])<1>)<1><2>,-1);
pg01 = Polygon.ByPoints(pt03);
[sf01,pg01];
I’m a newbie at dynamo, so I don´t understand any of this. I’m sorry