Ну поскольку ширину ты задашь при создании TextNote-а, то да, нужна высота. Решить можно, сначала накидав TextNote-ов, например в (0, 0, 0), вызвать doc.Regenerate(), после которого станут доступны реальные габариты, после чего посчитать позиции и ElementTransformUtils.MoveElement-ом переместить в нужные позиции и дорисовать линии