Skip to content

AnalyticalToPhysicalAssociationManager.AddAssociation(ElementId, ElementId)

Public Class

Adds a new association between an analytical element and a physical element.

Namespace: Autodesk.Revit.DB.Structure

Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

Syntax

public void AddAssociation(
ElementId analyticalElementId,
ElementId physicalElementId
)

Parameters

analyticalElementId ElementId

Id of the analytical element.

physicalElementId ElementId

Id of the physical element.

Exceptions

Exception

Condition


ArgumentException

Analytical id is not valid or has already defined another association. -or- Physical id is not valid or has already defined another association.


ArgumentNullException

A non-optional argument was null


Remarks

The arguments must be ids of an analytical and of a physical element that don’t have other associations, otherwise an exception is thrown. Physical element can have one of these categories:

  • Columns
  • Curtain Wall Panels
  • Floors
  • Generic Models
  • Mass
  • Parts
  • Railings
  • Ramps
  • Roofs
  • Stairs
  • Structural Columns
  • Structural Foundation
  • Structural Framing
  • Structural Trusses
  • Structural Beam System
  • Walls

Analytical element can have one of these categories:

  • Analytical Member
  • Analytical Panel

Example

using (Transaction trans = new Transaction(doc, "AddAssociationBetweenPhysicalAndAnalyticalElements"))
{
trans.Start();
ElementId idAnalyticalElem = GetSelectedObject(activeDoc, "Please select analytical element");
ElementId idPhysicalElem = GetSelectedObject(activeDoc, "Please select physical element");
//gets the AnalyticalToPhysicalAssociationManager for the current document
AnalyticalToPhysicalAssociationManager analyticalToPhysicalManager = AnalyticalToPhysicalAssociationManager.GetAnalyticalToPhysicalAssociationManager(doc);
if (analyticalToPhysicalManager == null)
return Result.Failed;
//creates a new association between physical and analytical selected elements
analyticalToPhysicalManager.AddAssociation(idAnalyticalElem, idPhysicalElem);
trans.Commit();

VB

Using trans As Transaction = New Transaction(doc, "AddAssociationBetweenPhysicalAndAnalyticalElements")
trans.Start()
Dim idAnalyticalElem = GetSelectedObject(activeDoc, "Please select analytical element")
Dim idPhysicalElem = GetSelectedObject(activeDoc, "Please select physical element")
'gets the AnalyticalToPhysicalAssociationManager for the current document
Dim analyticalToPhysicalManager = AnalyticalToPhysicalAssociationManager.GetAnalyticalToPhysicalAssociationManager(doc)
If analyticalToPhysicalManager Is Nothing Then Return Result.Failed
'creates a new association between physical and analytical selected elements
analyticalToPhysicalManager.AddAssociation(idAnalyticalElem, idPhysicalElem)
trans.Commit()