Сергей, собственно мысль верная. При повороте нужно задать линию, относительно которой происходит вращение. Центральную линию можно получить из геометрии стены на сколько я помню. Но твое решение тоже работает, если не брать во внимание тот факт, что центральная линия не всегда является центром стены.
Кстати откуда берутся координаты
sp и
ep? не из
BoundingBox? В этом случае можно столкнуться с неожиданным поведением для повернутой относительно XY стены, как описано
тут/
Да, и еще. Обрати внимание на класс
ElementTransformUtils, а именно на
ElementTransformUtils.Rotate. Он, конечно фактически сделает то же самое, но более универсальный.