What it does
Creates an MEP run along a polyline: one segment for each leg and, between one segment and the next, the fitting, according to the type's routing preferences. You choose what to create:
tubo: pipe, with pipe type and system type (as named in the model, e.g. the domestic hot water one);condotto: duct, with duct type and system type;passerella: cable tray;canalina: conduit.
Vertices are in millimeters, from the project's internal origin: [x, y, z] with an absolute z elevation, or [x, y] with "quota_mm", the run's height above the level. With [x, y, z] points the run can rise, drop or slope; with "quota_mm" it is horizontal. Your AI can take the points from the model or ask you to click them in Revit with Ask for a point.
- Sizes: "diametro_mm" for pipes, round ducts and conduits; "larghezza_mm" and "altezza_mm" for rectangular ducts and cable trays. If you do not give them, BIMit does not set them and Revit's sizes stay.
- Fittings: between two segments in the same direction a union, otherwise an elbow. It does not create branches (tees). Fittings Revit cannot create are reported, with the reason, and the run stays.
- "collega_inizio" / "collega_fine": the id of an element (fixture, air terminal, another pipe) to start from or end at. BIMit takes its free connector nearest to the first (or last) point, of the same kind of system, starts (or ends) the run there and connects them. That way even a single point is enough.
- Legs shorter than the minimum length Revit accepts are skipped.
After creating it, BIMit reads the run back and compares it with the request: one segment per leg, position and slope of each segment, type, level, system type, sizes, the segments connected to each other (directly or through the fitting), the start and end connected where asked. It also flags an open end of the run that stops next to a free connector of another element without being connected to it, and suggests connecting them with Connect systems. Then it looks for new clashes in the area and collects Revit's warnings.
How it works
- Your AI calls the tool with the category, the points and the options (type, system, level, sizes, elements to connect). To pick existing types and systems it can read the model first. With "prova" it can simulate: it sees what would be added and the model goes back to how it was.
- BIMit creates the segments and fittings in Revit in a single operation, answers any Revit dialogs that open on its own (OK by default) and, if Revit reports an error, rolls everything back: the model stays as it was. There is no confirmation in Revit: the run is created when your AI calls the tool.
- BIMit reads the run back: "verifica", at the top of the result, says ok, warnings or problems, with the element ids and what to do. A mismatch does not undo the change by itself.
- Your AI reports the segments and fittings created (ids), the type, the level, the total length, the missing fittings and the outcome of the connections; if you ask, also a picture of the area before and after.
Example requests
- "Create a 32 mm cold water pipe 2.80 m above the Ground Floor from (0, 0) to (6000, 0) and then on to (6000, 4000)."
- "Run a 400 × 200 rectangular duct from the selected air terminal to the point I click in Revit, as a dry run first."
- "Lay a 300 × 60 cable tray along the corridor, 3 m above Level 1, with elbows at the corners."
What changes and how to undo
Adds the run's segments and fittings to the model and, with "collega_inizio" / "collega_fine", connects it to the elements given. Everything happens in a single Revit operation, which appears in the Undo list with BIMit's name and "crea tubo" (or "crea condotto", "crea passerella", "crea canalina"): a single Ctrl+Z in Revit removes the whole run of the call. With "prova" the model does not change. If your AI opened a Work session, segments and fittings can also be removed with Undo the session.
Limits
- Needs the AI level "Write" (the default), which you choose with the "Level" button on the BIMit tab.
- Needs an open project that can be edited in Revit, with no other operation in progress.
- At least 2 points, or 1 point with "collega_inizio" or "collega_fine". Straight segments only; all the segments of a call share the same type, system, level and sizes.
- The type is given by its exact name, as "Family: Type" or by part of the name if that matches only one; otherwise your AI gets the list of types. Without "tipo" the first type in alphabetical order is used; for pipes and ducts, without "sistema" the first system type in alphabetical order. The model must contain at least one type (and, for pipes and ducts, one system type).
- Without "livello" the level of the active view is used, otherwise the lowest one.
- A size the type does not allow to be set (e.g. the diameter of a rectangular duct) stops the operation and the model stays as it was.
- Fittings depend on the type's routing preferences: if the elbow family is not loaded, the segments are created but stay unconnected at that point.
- Every change to the model can be undone with Ctrl+Z in Revit; team actions ask for confirmation in Revit.
Parameters
| Parameter | Meaning |
|---|---|
categoria | What to create: tubo (pipe), condotto (duct), passerella (cable tray) or canalina (conduit). |
punti | Vertices [x, y, z] in mm (absolute z), or [x, y] with quota_mm; also from Ask for a point. |
quota_mm | Height of the run above the level, in mm, for all points: the run is horizontal. |
tipo | Pipe, duct, cable tray or conduit type. Default: the first in alphabetical order. |
sistema | Pipes and ducts: system type (as named in the model). Default: the first in alphabetical order. |
livello | Reference level (name or id). Default: the level of the active view, otherwise the lowest one. |
diametro_mm | Diameter in mm (pipes, round ducts, conduits). |
larghezza_mm | Width in mm (rectangular ducts, cable trays). |
altezza_mm | Height in mm (rectangular ducts, cable trays). |
raccordi | Creates the fittings between segments (default true). |
collega_inizio | Id of the element to connect the start of the run to. |
collega_fine | Id of the element to connect the end of the run to. |
prova | true: dry run, reports the changes and rolls everything back. |
modifiche | Reports the elements added, modified and deleted (default true). |
dialoghi | Answer to Revit dialogs during the operation: ok (default), annulla, si, no, chiudi, link1…link4, a number or mostra (you see them); or one answer per dialog. |
verifica | Check after the change: breve (short, default), completa (with the measured values) or no. |
immagini | true: a picture of the area before and one after, cropped to the run, which your AI sees. |
vista_immagini | View for the pictures: attiva (active, default), 3d (a temporary 3D view) or the name or id of a view. |