Have you confirmed that the vector from Curve.NormalAtParameter is relative to the dimension direction? I’m guessing it’s the same vector regardless of dimension orientation and that’s your problem. You’d have to determine the orientation of the dimension and then apply a negative when left or bottom oriented.