Tool

Place family

Technical name: posiziona_famiglia

Modelling › Modify

Writes the model

Places instances of a family type loaded in the model, according to how the family is hosted (on a level, in a wall, on a face, line-based, in the view, between two levels, adaptive), with rotation, offset and parameters.

What it does

Creates instances of a family type already loaded in the model, at the given points (in millimeters, from the project's internal origin). BIMit picks the way to place them from how the family is hosted:

  • Level-based (furniture, equipment…): one instance per point, on the level, raised by offset_mm.
  • Wall-hosted (doors, windows): one instance per point, in the wall given as ospite or in the wall nearest to the point (within half its thickness plus 300 mm, preferring walls on the same level). If there is no wall near the point, BIMit stops and asks for the host.
  • Face-based: on the face given with faccia, a reference your AI gets by having you click the face with Ask for elements. Without points, the instance goes to the middle of the face; on a wall face it is oriented horizontally along the wall.
  • Work plane-based, without a face: on the level's plane.
  • Line-based: one instance for every two points (start and end); structural framing as beams on the level.
  • Detail or annotation: in the active view; line-based detail components with two points per instance.
  • Columns (between two levels): on the base level, with livello_superiore as the top constraint; structural columns as structural.
  • Adaptive: one instance, with one point for each adaptive point of the family.

Other kinds of family are not placed with this tool. If the type is not active in the project yet, BIMit activates it. After placing, it rotates each instance by rotazione_gradi around its own point and sets the requested parametri; those it cannot set (because they are missing or read-only) are listed.

Then BIMit reads the instances back and compares them with the request: count, type, level, host, position, top constraint, view and parameter values. It also looks for new clashes in the area and collects Revit's warnings.

How it works

  1. Your AI chooses the family and type among those loaded, and the points, which it can take from the model or ask you to click in Revit with Ask for a point. With prova it can simulate first: it sees what would be added and the model goes back to how it was.
  2. BIMit places the instances in Revit in a single operation, answers by itself any Revit dialogs that open (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 instances are created when your AI calls the tool.
  3. BIMit reads the created instances back: verifica, at the top of the result, says ok, warnings or problems, with the ids and what to do. A mismatch does not undo the change by itself.
  4. Your AI tells you the instances created (ids), family, type, placement kind, level, the hosts and the parameters that were not set; if you ask, also a picture of the area before and after.

Example requests

  • "Put a 90×210 door in the wall where I click."
  • "Place four 'Desk: 160×80' desks at the points I give you, rotated 90°."
  • "Insert HEA 200 columns at every grid intersection, from the Ground Floor to Level 1, as a dry run first."

What changes and how to undo

Adds the family instances to the model, with their parameters set. Everything happens in a single Revit operation, which shows in the Undo list with BIMit's name and "posiziona famiglia": one Ctrl+Z in Revit removes all the instances of the call. They can also be removed with Delete elements or, if your AI opened a Work session, with Undo the session. With prova the model does not change.

Limits

  • Needs the AI level "Write" (the default), which you choose with the "Level" button on the BIMit tab.
  • Needs an open, editable project in Revit, with no other operation in progress.
  • The family must already be loaded in the model: the tool does not load RFA files. It is given by name (also part of it, if that matches a single family) and type, or as "Family: Type"; without a type, the first one in alphabetical order is used. If the name is ambiguous, your AI gets the list.
  • Without livello, the active view's level is used; otherwise the one below the first point, or the lowest.
  • Detail and annotation instances go into the active view.
  • offset_mm applies to level-based families, families on the level's work plane, line-based families and columns; wall-hosted families are placed at the level's elevation.
  • Every change to the model can be undone with Ctrl+Z in Revit; team actions ask for confirmation in Revit.

Parameters

ParameterMeaning
famigliaFamily name (or "Family: Type" in tipo).
tipoType name.
puntiPoints [x, y] or [x, y, z] in mm (also from Ask for a point): one instance per point; for line-based families one every two points.
livelloLevel (name or id). Default: the active view's level.
livello_superioreColumns: the top level.
ospiteId of the host element (wall, floor, ceiling…). Default for doors and windows: the wall nearest to the point.
facciaReference to a face (from Ask for elements, face type) for face-based families.
rotazione_gradiRotation around the vertical axis after placing.
offset_mmDistance from the level (or from the plane).
parametriParameters to set on each instance: {name: value}; texts can carry units, like "900 mm".
provatrue: dry run, reports the changes and rolls everything back.
modificheReports the elements added, modified and deleted (default true).
dialoghiAnswer to Revit dialogs during the operation: ok (default), annulla (cancel), si (yes), no, chiudi (close), link1…link4, a number or mostra (you see them); or one answer per dialog.
verificaCheck after the change: breve (short, default), completa (full, with the measured values) or no.
immaginitrue: a picture of the area before and one after, cropped to the instances, which your AI sees.
vista_immaginiView for the pictures: attiva (the active view, default), 3d (a temporary 3D view) or the name or id of a view.

Related tools

All tools