Да извиняюсь, за некорректную формулировку.
p3 - это точка вне прямой, с помощью, которой я определяю расстояние до прямой, на половину которого и надо подвинуть midpoint
double projP3 = (columnFaceLine.Project(p3).XYZPoint - p3).GetLength();
- но работает очень странно.
t - это proj3, просто ошибся
Переместить надо перпендикулярно существующей линии