How to make pipe really horizontal / vertical / flat due to typical linked CAD issue

user created pipes via tracing CAD line which is slightly off axis, how to fix it? looks like Element.GetLocation and Element.SetLocation will do the trick, see below screen capture of that pipe’s location curve direction via RevitLookup, looks like it’s slightly sloped, can Dynamo/Python handle that accuracy / precision?

image

uploaded RVT FYI, even though i can manually make it really flat, better if it can be fixed via Dynamo/Python

slightly sloped duct.rvt (1.5 MB)

Edit: Dynamo/Python can handle it after quick test, they use Revit internal unit afterall

Hi @ning.zhouHNQLJ ,

To answer your initial question whether Python/Dynamo can handle such precision, technically yes, but a better question would be: why would you need Python/Dynamo need to be at such precision? Such levels of precision do not mean anything. I am a believer that anything, in the AEC sector at least, beyond millimeter level decimal places (aka 3), is basically meaningless.

Do you need help with setting up a simple Dynamo script to round and replace your ducts? (Or did you already make a simple script yourself, and if so, would you mind sharing that for others having similar questions/ problems?)

thanks Daan, the issue is caused by CAD, as i mentioned before, Element.GetLocation and Element.SetLocation will do the trick using modified location curve.

The hard part will be standardizing the plane at which the pipes are drawn on. If everything is only 1.00000000000 and 0.9999999999999 you’re likely in good shape by setting the value at 1; but if one end is at 1.000000000 and the other at 261935.026262950 things start to get harder to rationalize.

only need to check the difference of X/Y/Z between 2 end points of location curve, so the margin is always small number like 0.0001, but you can also use large number like 10 to make element horizontal/vertical/flat, in this case, it’s not an error caused by CAD, rather intentionally

The problem will be with the collection of all curves, assuming all pipes were intended to be drawn on the same level so they will join readily.