Portare — How to Use

Last Updated: January 1, 2026

What is Portare?

Portare is an Autodesk® Revit® add-in that lets you migrate elements from one Revit model to another — with full fidelity: geometry, parameters, type data, compound layer structure, and MEP system assignments are all transferred.

Unlike Revit's native Copy/Monitor, Portare does not create interdependencies between models. Elements are serialized to a portable .portare file that can be injected into any target document — regardless of template, discipline, or file origin.


Where to Find It

After installation, the Portare panel appears on the Avant Leap tab in the Revit ribbon.

The panel contains four buttons, read left to right in workflow order:

Button What it does
Serialize Capture selected elements from the source model → save as .portare file
Config Create or edit a transfer configuration (type mapping, category filters)
Inject Load a .portare file → recreate the elements in the active (target) model
Validate Compare a .portare file against injected elements → check parameter fidelity

Workflow Overview

SOURCE MODEL                         TARGET MODEL
─────────────────                    ─────────────────────────
1. Open source model
2. Click Serialize
3. Choose selection mode
4. Choose output format
5. Save .portare file    ──────────► 6. Open target model
                                     7. Click Inject
                                     8. Select .portare file
                                     9. Confirm preview → inject
                                    10. Click Validate (optional)
                                    11. Review fidelity report

Step-by-Step Instructions

Step 1 — Serialize (Source Model)

Purpose: Capture elements from the source model and save them to a .portare JSON file.

  1. Open the source Revit model.

  2. On the Avant Leap tab, click Serialize.

  3. The Select Elements dialog opens. Choose one of three collection modes:

    Manual selection

    • Select elements in the active view before clicking Serialize.
    • The dialog shows how many elements are currently selected.
    • Click Next to proceed with those elements.

    Room / Zone

    • Select one or more rooms or HVAC zones from the list.
    • Portare collects all model elements whose bounding box intersects the selected rooms.
    • Useful for migrating a fully furnished room or a mechanical zone.

    Category filter

    • Select one or more categories from the list (e.g. Ducts, Walls, Mechanical Equipment).
    • Portare collects all elements of the selected categories in the document.
    • Useful for discipline-level transfers (e.g. all piping from a design model).
  4. Click Next. The Output Format dialog appears:

    • Save as .portare JSON — portable snapshot for Inject (recommended for cross-model transfer).
    • Export to new .rvt — copies the selection into a new standalone Revit file (types included).
  5. Choose a location and save the file.

Supported element types:

  • Family instances (any category)
  • Walls (including compound layer structure)
  • Floors (including compound layer structure)
  • Ceilings (including compound layer structure)
  • Roofs
  • Ducts
  • Pipes
  • Conduits
  • Cable Trays
  • Generic model elements

Step 2 — Config (Optional)

Purpose: Define type mapping rules, category filters, and fallback strategies for the injection.

  1. On the Avant Leap tab, click Config.
  2. Create or edit a portare-config.json file.
  3. Save the config. It will be applied automatically during Inject when placed in the same folder as the .portare file.

The config step is optional. If no config file is present, Portare uses default behavior: match types by name, fall back to the first available type if no match is found.


Step 3 — Inject (Target Model)

Purpose: Recreate the serialized elements in the active (target) document.

  1. Open the target Revit model.
  2. On the Avant Leap tab, click Inject.
  3. In the file picker, select the .portare file produced by Serialize.
  4. The Preview dialog shows:
    • All element kinds grouped by type
    • Type resolution status: [OK] = type found in target, [NEW] = will be created automatically
    • Level resolution status: [OK] = level found, [NEW] = will be created by elevation
  5. Click OK to inject.

What Inject does automatically:

  • Creates missing system-family types (WallType, FloorType, CeilingType) with compound layer structure reconstructed
  • Creates missing materials referenced by compound layers
  • Creates missing levels by elevation (±10 mm tolerance)
  • Binds wall top constraints to the correct level
  • Assigns MEP system types (Supply Air, Domestic Cold Water, etc.) by name, falling back to the first available
  • Writes Portare:{sourceUniqueId} to the Comments parameter of each created element for traceability
  1. Review the summary dialog: Succeeded / Failed / Skipped counts with failure reasons.

Step 4 — Validate (Optional)

Purpose: Verify that injected elements match the source parameters — catch any fidelity loss.

  1. With the target model open, click Validate on the Avant Leap tab.
  2. Select the same .portare file used during Inject.
  3. Portare scans the target document for elements tagged with Portare:{uid} in their Comments parameter and compares each parameter value against the source snapshot.
  4. The report shows:
    • Elements fully matched
    • Elements with parameter discrepancies (parameter name, expected value, actual value)
    • Elements not found in the target (not injected, or Comments overwritten)
  5. Optionally save the report as a .portare-result JSON file for archiving.

Tips and Best Practices

  • Always run Inject on a saved, non-workshared copy of the target model when testing a new transfer. This avoids polluting production models during trials.
  • Room mode collects by bounding box, not by room association. Elements that overlap a room boundary may be included.
  • Category mode collects all elements of that category in the entire document. Filter to specific elements using Manual mode if a full-category transfer is too broad.
  • Level names can differ between source and target — Portare resolves by elevation (±10 mm), so level name mismatches are handled automatically.
  • Type names that do not exist in the target model are created automatically for system families (Wall, Floor, Ceiling). For loaded families, the family must already exist in the target or be loaded manually before injection.
  • The Comments parameter is used for traceability. If you clear or overwrite the Comments parameter on an injected element, Validate will report it as "not found."
  • MEP elements (Duct, Pipe, Conduit, Cable Tray) require that at least one type of each kind exists in the target model. Portare matches by type name and falls back to the first available type.

Frequently Asked Questions

Can I transfer elements between models with different templates? Yes. Portare resolves types by name and creates missing system-family types automatically. Template differences in level names and type names are handled via elevation-based and name-based fallback.

What happens if an element fails to inject? It is reported as Failed or Skipped in the summary dialog with a specific reason. The transaction is not rolled back — successfully created elements are kept. Re-run Inject after resolving the reported issue.

Can I run Inject multiple times with the same .portare file? Yes, but duplicate elements will be created. Use Validate before re-injecting to check if elements already exist (look for elements with Portare:{uid} in Comments).

Does Portare transfer nested families? Not in the current version. Hosted elements (e.g. doors in walls) are captured as records but are not re-hosted automatically in the target model.

Is geometry transferred? Portare serializes element parameters, location, type data, and boundary curves (for Floor, Ceiling, Roof). Full solid geometry is not reconstructed — elements are re-created using the Revit API creation methods, which reproduce the geometry from type and location data.


Support

Email: info@avantleap.com Website: www.avantleap.com Quick Guide: www.avantleap.com/portare/how-to-use

We aim to respond to all support requests within 2 business days.