Adds a new association between an analytical element and a physical element.
Namespace: Autodesk.Revit.DB.Structure
Assembly: RevitAPI (in RevitAPI.dll) Version: 24.0.0.0 (24.0.0.0)
Since: 2023
Syntax
C# |
---|
|
Visual Basic |
---|
|
Visual C++ |
---|
|
Parameters
- analyticalElementId
- Type: Autodesk.Revit.DBElementId
Id of the analytical element.
- physicalElementId
- Type: Autodesk.Revit.DBElementId
Id of the physical element.
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 Member
- Analytical Panel
Examples

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();

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()

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()
Exceptions
Exception | Condition |
---|---|
Autodesk.Revit.ExceptionsArgumentException | Analytical id is not valid or has already defined another association. -or- Physical id is not valid or has already defined another association. |
Autodesk.Revit.ExceptionsArgumentNullException | A non-optional argument was null |