Array Curve/ Surface

hi everybody
I have a dyn file, I used it to array family according to the curve, but the results are not as expected, it is not placed at the curve position?
And I want to control the amount or distance between two families, what do I do here?

Array-curve.dyn (25.8 KB)

Thanks you

Hi @khuvv.hp

You will find solution here.

Thanks you
I also rely on it to make documents for me, but I want to control the number or distance family, how do I do?
can you help me?

@khuvv.hp Please post the Revit file (a small / light version) that is referenced by your Dynamo definition

the file you are trying to upload is too big (maximum size is 3072KB)

Delete all elements from the file except the curve and the Desk
Purge the file (repeat until there are no unused elements)
The file should be much smaller now. Save and upload

Copy the curve to a new file and upload

Hi all
this is file attach below :
Array curve.rvt (1.6 MB)

The problem lies in your Desk family.
M_Desk.rfa (392 KB)

Load and overwrite the Desk family file in your Revit project with the file provided above.
Try the running the definition with some other family whose origin is at the center of the family object


I want to control the amount or distance between two families, what do I do here?

To control the amount, in the code block that specifies parameters for Curve.PointAtParameter replace 0…1…0.1 with 0…1…#n (n being the amount)

If you want to control distance, replace Curve.PointAtParameter with Curve.PointAtSegmentLength or Curve.PointAtChordLength and in the length input feed in a list of lengths eg {1000,2500,5000…}

1 Like

thanks you very much
i replace Curve.PointAtParameter by Curve.PointsAtEqualChordLength
It will be better results, number and distance, but it was born 1 problem that the first position and last of curve, the family does not installation, what has occurred here here?

You asked Dynamo to get points every 20 units along the line. Not a point at the start and end as well.

Add a point at parameter with the parameter values 0,1 and insert those points into the list with a list.addtofront node.

Keep in mind the last desk will be less than 20 units from the second to last.

1 Like

Curve.PointAtParameter with 0…1…#n will give you more or less similar results, with the start and end points. However this would actually be similar to Curve.PointsAtEqualSegmentLength

If you’re keen on using Curve.PointsAtEqualChordLength, add Curve.StartPoint and Curve.EndPoint to the start and end of the list of points obtained

thanks you, thanks you
it’s a wonderful thing
you are a man great

1 Like

@khuvv.hp Some basic rules of forum always mark the post as solved when you get solution.