Revit

Revit is a BIM platform for architecture, structure and MEP. Learn BIM concepts, families and types, levels and views, parametric relationships, schedules and quantities, worksharing, clash detection, LOD, and automation with Dynamo and the Revit API.

Building Information Modelling replaces separate drawings with one intelligent 3D model: walls know they are walls, beams carry sizes and materials, and every plan, section, schedule and quantity is a live view of the same data.

Revit is the most widely used BIM authoring tool; learning it well changes how design teams coordinate and how quantities are produced.

An analogy

Traditional CAD draws pictures of a building; BIM builds a virtual building from which the pictures are generated.

BIM basics

Model with levels, grids and building elements (walls, floors, roofs, columns, beams, doors). Views (plans, sections, 3D, schedules, sheets) are live representations: change the model once, everything updates.

Families and parameters

System families (walls, floors), loadable families (doors, beams, fittings) and in-place families. Type parameters apply to all instances of a type; instance parameters vary per element. Formulas and constraints make families parametric.

Collaboration and coordination

Worksharing lets many users edit a central model. Linked models from each discipline are coordinated; clash detection (Navisworks, BIM 360/ACC) finds conflicts like ducts through beams before they reach site.

Data, automation and standards

Schedules and quantity take-off feed estimates (5D) and facility management. Dynamo visual scripting and the API automate repetitive tasks and generative design. ISO 19650 governs information management; LOD/LOI specifications define what each model stage must contain; IFC enables open exchange.

Formulas

Worked example: Schedule-driven cost

Given: Wall schedule: 120 m² of 230 mm brick walls; Rate 5500 per m³

Find: Volume and cost via calculated fields.

Answer: 27.6 m³, 151 800 — updates automatically when walls change

Worked example: Window family formula

Given: Sill height 900 mm; Window height 1200 mm

Find: Head height.

Answer: 2100 mm (aligns with door heads)

Revit API (pyRevit / RevitPythonShell): total wall volume by type

from Autodesk.Revit.DB import FilteredElementCollector, BuiltInCategory, BuiltInParameter, UnitUtils, UnitTypeId

doc = __revit__.ActiveUIDocument.Document
walls = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).WhereElementIsNotElementType()

totals = {}
for w in walls:
    p = w.get_Parameter(BuiltInParameter.HOST_VOLUME_COMPUTED)
    if p:
        vol_m3 = UnitUtils.ConvertFromInternalUnits(p.AsDouble(), UnitTypeId.CubicMeters)
        name = w.Name
        totals[name] = totals.get(name, 0) + vol_m3

for name, vol in sorted(totals.items()):
    print("{:<40} {:8.2f} m3".format(name, vol))

Revit stores lengths internally in feet — always convert units when reading parameters via the API.

Common mistakes

Applications

Key takeaways

Going further