Revit 2025 API
IExport |
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: 25.0.0.0 (25.0.0.0)
Syntax
RenderNodeAction OnInstanceBegin( InstanceNode node )
Function OnInstanceBegin ( node As InstanceNode ) As RenderNodeAction
RenderNodeAction OnInstanceBegin( InstanceNode^ node )
abstract OnInstanceBegin : node : InstanceNode -> RenderNodeAction
Parameters
- node InstanceNode
Return Value
RenderNodeActionReturn RenderNodeAction.Skip if you wish to skip processing this family instance, or return RenderNodeAction.Proceed otherwise.

/// <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
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also