# Placing family at an (x,y,z) offset from a curve that should copy along that curve but at a specific offset defined by the first family placed

**URL:** <https://forum.dynamobim.com/t/placing-family-at-an-x-y-z-offset-from-a-curve-that-should-copy-along-that-curve-but-at-a-specific-offset-defined-by-the-first-family-placed/112542>\
**Category:** Geometry\
**Tags:** dynamo\
**Created:** [September 30, 2025, 7:47pm UTC](https://forum.dynamobim.com/t/placing-family-at-an-x-y-z-offset-from-a-curve-that-should-copy-along-that-curve-but-at-a-specific-offset-defined-by-the-first-family-placed/112542 "2025-09-30T19:47:52Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![HimanshuG.Goodwani45](https://avatars.discourse-cdn.com/v4/letter/h/c0e974/32.png) [@HimanshuG.Goodwani45](https://forum.dynamobim.com/u/HimanshuG.Goodwani45)\
**Post date:** [September 30, 2025, 7:47pm UTC](https://forum.dynamobim.com/t/placing-family-at-an-x-y-z-offset-from-a-curve-that-should-copy-along-that-curve-but-at-a-specific-offset-defined-by-the-first-family-placed/112542/1 "2025-09-30T19:47:52Z")

</div>

Hey there,

I have been trying to copy a Revit family along a curve using Dynamo. This is **not** a case of simply placing the family on the curve to follow its path. The first instance of the family is placed at a specific offset from the curve.

The script works as expected along straight sections of the curve. However, when the curve takes a turn, the behavior is not as intended: instead of maintaining the same relative offset, the family shifts upward or follows an unintended path. Essentially, the family does not maintain the correct **offset direction relative to the curve** when the curve bends.

I need a solution that ensures **every copied family instance maintains the same relative offset from the curve as the first instance** , regardless of the curve’s shape or direction changes.

 ![copy_2025-10-01_01-16-21](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/9/d/9d854ef05d9fbe7b2d9b396575ddc28ef9e0f0cb.png)

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [September 30, 2025, 8:29pm UTC](https://forum.dynamobim.com/t/placing-family-at-an-x-y-z-offset-from-a-curve-that-should-copy-along-that-curve-but-at-a-specific-offset-defined-by-the-first-family-placed/112542/2 "2025-09-30T20:29:01Z")

</div>

I would offset the primary curve by its distance to the other family instance, and then generate the points along the offset curve. You likely want Curve.PointsAtEqualSegmentLengthFromPoint to keep equal spacing from the original point rather than using parameterization as the offset curve may not have uniform parameter spacing.

---

<div class="post-metadata">

**Author:** ![HimanshuG.Goodwani45](https://avatars.discourse-cdn.com/v4/letter/h/c0e974/32.png) [@HimanshuG.Goodwani45](https://forum.dynamobim.com/u/HimanshuG.Goodwani45)\
**Post date:** [September 30, 2025, 8:47pm UTC](https://forum.dynamobim.com/t/placing-family-at-an-x-y-z-offset-from-a-curve-that-should-copy-along-that-curve-but-at-a-specific-offset-defined-by-the-first-family-placed/112542/3 "2025-09-30T20:47:38Z")

</div>

Thanks for the solution. Please can you help me on how to offset the original curve to the point where family is placed. the family is offset not only in xy but also in z direction. which nodes to use. Sorry if this sounds noob but yes i am new to dynamo. 1) is family instance in image and 2) is curve.

 ![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/d/c/dcae2e6b69b3a178717d429649a19e8ecc3cf35e.png)

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [September 30, 2025, 9:25pm UTC](https://forum.dynamobim.com/t/placing-family-at-an-x-y-z-offset-from-a-curve-that-should-copy-along-that-curve-but-at-a-specific-offset-defined-by-the-first-family-placed/112542/4 "2025-09-30T21:25:01Z")

</div>

1. Translate the curve on the Z axis to the elevation of the point.
2. Geometry.DistanceTo to get the distance from the translated curve to the point.
3. Offset the curve by the + and - distance.
4. Sort the offset curves by their distance to the point and take the first curve from the list.
5. Proceed as above.

---

<div class="post-metadata">

**Author:** ![Andrew\_Hannell](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/andrew_hannell/32/103315_2.png) [@Andrew\_Hannell](https://forum.dynamobim.com/u/Andrew_Hannell)\
**Post date:** [October 1, 2025, 12:12am UTC](https://forum.dynamobim.com/t/placing-family-at-an-x-y-z-offset-from-a-curve-that-should-copy-along-that-curve-but-at-a-specific-offset-defined-by-the-first-family-placed/112542/5 "2025-10-01T00:12:09Z")

</div>

If I understand properly, it is probably easier to translate the entire curve in Dynamo, rather than trying to calculate offsets for each family instance

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [October 1, 2025, 6:13am UTC](https://forum.dynamobim.com/t/placing-family-at-an-x-y-z-offset-from-a-curve-that-should-copy-along-that-curve-but-at-a-specific-offset-defined-by-the-first-family-placed/112542/6 "2025-10-01T06:13:01Z")

</div>

Correct - the simplest solution is to translate the curve to the right height, then offset it, and gather the points (and even orientations) from the offset curve.

---

<div class="post-metadata">

**Author:** ![HimanshuG.Goodwani45](https://avatars.discourse-cdn.com/v4/letter/h/c0e974/32.png) [@HimanshuG.Goodwani45](https://forum.dynamobim.com/u/HimanshuG.Goodwani45)\
**Post date:** [October 2, 2025, 6:24am UTC](https://forum.dynamobim.com/t/placing-family-at-an-x-y-z-offset-from-a-curve-that-should-copy-along-that-curve-but-at-a-specific-offset-defined-by-the-first-family-placed/112542/7 "2025-10-02T06:24:26Z")

</div>

Yes, This seems the right and easiest approach. Thank you so much @jacob.small , @Andrew_Hannell for the help. Will post the script once it gets completed.
