# Create a perpendicular line from point to alignment

**URL:** <https://forum.dynamobim.com/t/create-a-perpendicular-line-from-point-to-alignment/110281>\
**Category:** Civil 3D\
**Created:** [May 21, 2025, 1:41pm UTC](https://forum.dynamobim.com/t/create-a-perpendicular-line-from-point-to-alignment/110281 "2025-05-21T13:41:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![t.nilsson](https://avatars.discourse-cdn.com/v4/letter/t/7ea924/32.png) [@t.nilsson](https://forum.dynamobim.com/u/t.nilsson)\
**Post date:** [May 21, 2025, 1:41pm UTC](https://forum.dynamobim.com/t/create-a-perpendicular-line-from-point-to-alignment/110281/1 "2025-05-21T13:41:16Z")

</div>

Hello!

I have an alignment, and I have multiple points (XY) which are around 5-20meters spread out along the alignment but with different offsets. I want to create lines from the points to the closest perpendicular point on the alignment. I do not have any stations in relation to the points, only the alignment and a list of points.  
I’ve been trying to figure this out in Dynamo but haven’t been able to find a solution, can anyone please point me in the right direction to which nodes/packages with nodes that can do this?

I am using Civil 3D 2023.

BR

---

<div class="post-metadata">

**Author:** ![Nick\_Boyts](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/nick_boyts/32/76313_2.png) [@Nick\_Boyts](https://forum.dynamobim.com/u/Nick_Boyts)\
**Post date:** [May 21, 2025, 2:26pm UTC](https://forum.dynamobim.com/t/create-a-perpendicular-line-from-point-to-alignment/110281/2 "2025-05-21T14:26:42Z")

</div>

`Curve.PullOntoSurface` is the only core node (that I can think of) that pulls or projects one geometry onto a second geometry in the normal direction of the second geometry. All the other options pull in the direction of the first geometry’s normal or in a specified direction.

This just means that we need to convert your geometry to curves and surfaces to benefit from this particular node. Extrude your alignment curve vertically to create a surface and create a line by extending your points vertically as well. Then you can pull the lines onto the curved surface (based on the surface’s normal directions) and then get the start point of each line to convert back to your point geometry.

---

<div class="post-metadata">

**Author:** ![zachri.jensen](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/zachri.jensen/32/205331_2.png) [@zachri.jensen](https://forum.dynamobim.com/u/zachri.jensen)\
**Post date:** [May 21, 2025, 3:13pm UTC](https://forum.dynamobim.com/t/create-a-perpendicular-line-from-point-to-alignment/110281/3 "2025-05-21T15:13:21Z")

</div>

Hi @t.nilsson,

Here you go:

 ![alignment_points](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/b/3/b3295e0a1d4e745c4e6fec8a191735df1d7e6e1d.png)

---

<div class="post-metadata">

**Author:** ![Anton\_Huizinga](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/anton_huizinga/32/155377_2.png) [@Anton\_Huizinga](https://forum.dynamobim.com/u/Anton_Huizinga)\
**Post date:** [May 22, 2025, 5:58am UTC](https://forum.dynamobim.com/t/create-a-perpendicular-line-from-point-to-alignment/110281/4 "2025-05-22T05:58:50Z")

</div>

I’ve not tested if this is improved in newer Dynamo versions but the Alignment.StationOffsetByPoint can be tricky if the Alignment exists of straight lines. I wrote a blog about that a while ago:

> **[Dynamo voor Civil 3D Bugs: Alignment Station and Offset](https://blog.huiz.net/2022/07/02/dynamo-voor-civil-3d-bugs-alignment-station-and-offset/)**
>
> Soms treden er onverklaarbare fouten op in een Dynamo voor Civil 3D script. Het kost dan veel tijd om uit te zoeken wat het probleem is. Zo kwam ik recent de volgende melding tegen toen ik de afstand van een serie punten tot een Alignment wilde...

In Dutch, but there is a translation button on top.
