I got this question today - customer has a 3D Reference Point and they have a target Surface that they need t draw a 3D line between the reference Point perpendicular to the Target Surface. In order to do this you need the 3D Point and the Target Surface information.
The Target Surface will provide the slope and the direction of slope of the surface. The required line will be parallel to the slope and at 90 degrees to the slope of the surface.
This short video shows how to compute the Bearing of the slope and the vertical angle of the slope to which you can add 270 degrees (subtract 90 degrees) in order to compute the line normal to the slope.
You will use the Surface Menu and Surface Intersection command to achieve this.
Note if you are intersecting a TIN Model, you will need to know which Triangle you are going to intersect, since each triangle face will have its own Slope and Direction of slope so the line perpendicular to the surface will vary based on which triangle you select to work with. If you can create a larger area from the provided data of common slope and direction, then you can do that with a triangle or rectangle i.e. 3 or 4 points to determine the target location.
If you are doing this based on an alignment, then the Bearing will likely be parallel or perpendicular to the alignment etc so it will likely be easier to compute
Hope that this answers the question Steve (or at least gives some ideas on how to solve the problem