ProjectionZ Property


The Z projection option.

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

Syntax

C#
public SurfaceElementProjectionZ ProjectionZ { get; set; }
Visual Basic
Public Property ProjectionZ As SurfaceElementProjectionZ
	Get
	Set
Visual C++
public:
property SurfaceElementProjectionZ ProjectionZ {
	SurfaceElementProjectionZ get ();
	void set (SurfaceElementProjectionZ value);
}

Remarks

Retrieves and set analytical model projection information for Z direction. To set projection to level, grid or plane use ProjectionPlaneZ property.

Examples

Copy C#
/// <summary>
/// Change the Z projection for all surface elements to BottomOrExterior
/// </summary>
public void ChangeSurfaceProjections(Document document)
{
    FilteredElementCollector collector = new FilteredElementCollector(document);
    IList<Element> elements = collector.WherePasses(new ElementClassFilter(typeof(AnalyticalModelSurface))).WhereElementIsNotElementType().ToElements();
    if (elements.Count > 0)
    {
        using (Transaction tran = new Transaction(document, "Change Surface Projections"))
        {
            tran.Start();
            foreach (AnalyticalModelSurface ams in elements)
            {
                SurfaceElementProjectionZ orgEndProj = ams.ProjectionZ;
                SurfaceElementProjectionZ newEndProj = SurfaceElementProjectionZ.BottomOrExterior;
                ams.ProjectionZ = newEndProj;
            }
            tran.Commit();
        }
    }
}
Copy VB.NET
''' <summary>
''' Change the Z projection for all surface elements to BottomOrExterior
''' </summary>
Public Sub ChangeSurfaceProjections(document As Document)
   Dim collector As New FilteredElementCollector(document)
   Dim elements As IList(Of Element) = collector.WherePasses(New ElementClassFilter(GetType(AnalyticalModelSurface))).WhereElementIsNotElementType().ToElements()
   If elements.Count > 0 Then
      Using tran As New Transaction(document, "Change Surface Projections")
         tran.Start()
         For Each ams As AnalyticalModelSurface In elements
            Dim orgEndProj As SurfaceElementProjectionZ = ams.ProjectionZ
            Dim newEndProj As SurfaceElementProjectionZ = SurfaceElementProjectionZ.BottomOrExterior
            ams.ProjectionZ = newEndProj
         Next
         tran.Commit()
      End Using
   End If
End Sub

Exceptions

Exception Condition
Autodesk.Revit.Exceptions ArgumentOutOfRangeException When setting this property: A value passed for an enumeration argument is not a member of that enumeration

See Also