This script will convert a set of detail lines into placeholders and will assign the correct connector (elbows, tees or cross) at every junction.
The placeholders can then be converted into pipes using the apposite toolbar command in Revit:
The OrganisePipe node organises the lines in line with elbows, with tees and with crosses and gives their index position as output.
The OrganisePipe node starts finding the main pipe route (the one with the elbows) using GroupByCurves and create a polycurve. For the remaining lines you can extract their starting points and check whether they belong to the polycurve (if ParameterAtPoint gives you an error, then these points don’t belong to the curve). The lines that pass this test go to the T list. For the others we need to check that their End Point does not belong to the polycurve. If it belongs than these lines are added to the T list. The remaining lines are included in the Cross list.
You can use the node output to subdivide the pipe placeholders in 3 lists. The elbows can be directly created, for the tees and cross you need to perform an intersection (Tool.GetSurroundingElement) to find the pipes they are connected to.
The heavy lifting is done by the 4 python scripts:
- Create pipe placeholders
- Connect pipe placeholders at Elbow
- Connect pipe placeholders at Tee
- Connect pipe placeholders at Cross
The custom node can be downloaded here and the full script here.