This method marks the beginning of an element to be exported.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 26.4.0.0 (26.4.0.0)
Syntax
C#
RenderNodeAction OnElementBegin(
ElementId elementId
)
Parameters
- elementId ElementId
-
The Id of the element that is about to be processed.
Return Value
RenderNodeAction
Return RenderNodeAction.Skip if you wish to skip exporting this element,
or return RenderNodeAction.Proceed otherwise.
Remarks
This method is never called for 2D export (see cref="Autodesk::Revit::DB::IExportContext2D").
Example
C#
Stack<ElementId> m_elementStack = new Stack<ElementId>();
ElementId CurrentElementId()
{
return (m_elementStack.Count > 0) ? m_elementStack.Peek() : ElementId.InvalidElementId;
}
public RenderNodeAction OnElementBegin(ElementId elementId)
{
m_elementStack.Push(elementId);
Wall theWall = m_document.GetElement(elementId) as Wall;
if (theWall != null)
{
double wallVolume = theWall.get_Parameter(BuiltInParameter.HOST_VOLUME_COMPUTED).AsDouble();
return RenderNodeAction.Proceed;
}
else
{
return RenderNodeAction.Skip;
}
}
public void OnElementEnd(ElementId elementId)
{
m_elementStack.Pop();
}
VB
Private m_elementStack As New Stack(Of ElementId)()
Private Function CurrentElementId() As ElementId
Return If((m_elementStack.Count > 0), m_elementStack.Peek(), ElementId.InvalidElementId)
End Function
Public Function OnElementBegin(elementId As ElementId) As RenderNodeAction Implements IExportContext.OnElementBegin
m_elementStack.Push(elementId)
Dim theWall As Wall = TryCast(m_document.GetElement(elementId), Wall)
If theWall IsNot Nothing Then
Dim wallVolume As Double = theWall.Parameter(BuiltInParameter.HOST_VOLUME_COMPUTED).AsDouble()
Return RenderNodeAction.Proceed
Else
Return RenderNodeAction.Skip
End If
End Function
Public Sub OnElementEnd(elementId As ElementId) Implements IExportContext.OnElementEnd
m_elementStack.Pop()
End Sub
See Also
Reference