Skip to content
PyPath

Trade pack Coming soon

Water

Irrigation water, basins and pipe networks: your own tools for water installations, practised on a simulated greenhouse complex with an irrigation unit, distribution pipes and drip lines.

Who it is for

Drafters and engineers who draw water installations: irrigation in greenhouse horticulture, or pipe networks in other buildings.

Tools you build

  • A material list per diameter, ready for ordering
  • Count drip lines and add up their length per section
  • Find open ends and missing end caps
  • Check that every pipe is in the right system
  • Lists to CSV for Excel

The final list comes with the lessons.

An example

How many metres of irrigation pipe per diameter are in the complex? This script makes the material list.

IrrigationMaterialList.pushbutton/script.py
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Plumbing import Pipe

doc = __revit__.ActiveUIDocument.Document

per_diameter = {}
for pipe in FilteredElementCollector(doc).OfClass(Pipe):
    system = pipe.get_Parameter(
        BuiltInParameter.RBS_SYSTEM_NAME_PARAM).AsString()
    if system != "Gietwater":  # the irrigation system in the model
        continue
    dn = pipe.get_Parameter(
        BuiltInParameter.RBS_PIPE_DIAMETER_PARAM).AsValueString()
    length = pipe.get_Parameter(
        BuiltInParameter.CURVE_ELEM_LENGTH).AsDouble()
    metres = UnitUtils.ConvertFromInternalUnits(length, UnitTypeId.Meters)
    per_diameter[dn] = per_diameter.get(dn, 0) + metres

for dn in sorted(per_diameter, key=lambda d: float(d.split()[0])):
    print("{}: {:.1f} m".format(dn, per_diameter[dn]))
Output on the simulated model
20 mm: 1940.4 m
32 mm: 6.4 m
40 mm: 3.2 m
50 mm: 6.4 m
63 mm: 11.2 m
75 mm: 12.8 m
90 mm: 29.9 m

Checked against the Revit API 2025 documentation; not yet run in a real Revit.