SetProjection Method (AnalyticalElementSelector, ElementId, StickElementProjectionZ)


Sets the analytical model projection to a preset value.

Namespace: Autodesk.Revit.DB.Structure
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0)
Since: 2015

Syntax

C#
public void SetProjection(
	AnalyticalElementSelector selector,
	ElementId planeIdY,
	StickElementProjectionZ projectionZ
)
Visual Basic
Public Sub SetProjection ( _
	selector As AnalyticalElementSelector, _
	planeIdY As ElementId, _
	projectionZ As StickElementProjectionZ _
)
Visual C++
public:
void SetProjection(
	AnalyticalElementSelector selector, 
	ElementId^ planeIdY, 
	StickElementProjectionZ projectionZ
)

Parameters

selector
Type: Autodesk.Revit.DB.Structure AnalyticalElementSelector
End of the analytical model.
planeIdY
Type: Autodesk.Revit.DB ElementId
Plane on to which analytical model may be projected in Y direction. Plane identifies a Level, a Grid, or a Ref Plane.
projectionZ
Type: Autodesk.Revit.DB.Structure StickElementProjectionZ
Preset value for Analytical Model Stick projection Z.

Examples

Copy C#
public void ChangeBeamProjection(FamilyInstance familyInstance)
{
    AnalyticalModelStick ams = familyInstance.GetAnalyticalModel() as AnalyticalModelStick;
    if (ams != null)
    {
         // Change the Z projection for the end of the beam
         StickElementProjectionZ orgEndProj = ams.GetProjectionZ(AnalyticalElementSelector.EndOrTop);
         StickElementProjectionZ newEndProj = StickElementProjectionZ.Bottom;
         using (Transaction tran = new Transaction(familyInstance.Document, "ChangeProjection"))
         {
             tran.Start();
             ams.SetProjection(AnalyticalElementSelector.EndOrTop, ElementId.InvalidElementId, newEndProj);
             tran.Commit();
         }

         TaskDialog.Show("AnalyticalModelStick", "AnalyticalModelStick ID: " + ams.Id + "; \nOriginal ProjectionZ value was: " + orgEndProj + "; \nNew ProjectionZ value: " + newEndProj);
    }
}

Exceptions

Exception Condition
Autodesk.Revit.Exceptions ArgumentNullException A non-optional argument was NULL
Autodesk.Revit.Exceptions ArgumentOutOfRangeException A value passed for an enumeration argument is not a member of that enumeration

See Also

ArchiLabs Desktop

Put AI to work inside Revit.

Give Desktop your instructions and project files to build Revit families, update model elements, and create views and schedules. Works directly in Revit and AutoCAD.

Explore Desktop →