This method marks the start of processing of an instance node (e.g. a family instance).
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 23.0.0.0 (23.1.0.0)
Since: 2014
Syntax
C# |
---|
|
Visual Basic |
---|
|
Visual C++ |
---|
|
Parameters
- node
- Type: Autodesk.Revit.DB InstanceNode
Return Value
Return RenderNodeAction.Skip if you wish to skip processing this family instance, or return RenderNodeAction.Proceed otherwise.Examples

/// <summary>
/// This method marks the start of processing of an Instance node (e.g. a family instance).
/// </summary>
public RenderNodeAction OnInstanceBegin(InstanceNode node)
{
// We can get particular information about the family instance and its type if we need to
ElementId symbolId = node.GetSymbolGeometryId().SymbolId;
FamilySymbol famSymbol = m_document.GetElement(symbolId) as FamilySymbol;
// Typically, an export context has to manage a stack of transformation
// for all nested objects, such as instances, lights, links, etc.
// A combined transformation needs to be applied to the incoming geometry
// (providing all geometry is to be flattened in the resultant format.)
m_TransformationStack.Push(m_TransformationStack.Peek().Multiply(node.GetTransform()));
// We can either skip this instance or proceed with rendering it.
return RenderNodeAction.Proceed;
}
/// <summary>
/// This method marks the end of processing of an Instance Node (e.g. a family instance).
/// </summary>
public void OnInstanceEnd(InstanceNode node)
{
// Note: This method is invoked even for instances that were skipped.
// If we maintain a transformation stack, we need to remove the latest one from it.
m_TransformationStack.Pop();
}

' <summary>
' This method marks the end of processing of an Instance Node (e.g. a family instance).
' </summary>
Public Function OnInstanceBegin(node As InstanceNode) As RenderNodeAction Implements IExportContext.OnInstanceBegin
' We can get particular information about the family instance and its type if we need to
Dim symbolId As ElementId = node.GetSymbolGeometryId().SymbolId
Dim famSymbol As FamilySymbol = TryCast(m_document.GetElement(symbolId), FamilySymbol)
' Typically, an export context has to manage a stack of transformation
' for all nested objects, such as instances, lights, links, etc.
' A combined transformation needs to be applied to the incoming geometry
' (providing all geometry is to be flattened in the resultant format.)
m_TransformationStack.Push(m_TransformationStack.Peek().Multiply(node.GetTransform()))
' We can either skip this instance or proceed with rendering it.
Return RenderNodeAction.Proceed
End Function
' <summary>
' This method marks the end of processing a family instance
' </summary>
Public Sub OnInstanceEnd(node As InstanceNode) Implements IExportContext.OnInstanceEnd
' Note: This method is invoked even for instances that were skipped.
' If we maintain a transformation stack, we need to remove the latest one from it.
m_TransformationStack.Pop()
End Sub