Revit 2025 API
Instance |
Add a cut to an element using the unattached voids inside a cutting instance.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public static void AddInstanceVoidCut( Document document, Element element, Element cuttingInstance )
Public Shared Sub AddInstanceVoidCut ( document As Document, element As Element, cuttingInstance As Element )
public: static void AddInstanceVoidCut( Document^ document, Element^ element, Element^ cuttingInstance )
static member AddInstanceVoidCut : document : Document * element : Element * cuttingInstance : Element -> unit
Parameters
| Exception | Condition |
|---|---|
| ArgumentException | The element cannot be cut with a void instance. -or- The element is not a family instance with an unattached void that can cut. |
| ArgumentNullException | A non-optional argument was null |
| ForbiddenForDynamicUpdateException | This method may not be called during dynamic update. |
| InvalidOperationException | Failed to cut element with the instances |
// Cut a beam with 3 instances of a void-cutting family // The Family Parameter "Cut with Voids When Loaded" must be true for the cutting family void CutBeamWithFamilyVoid(Autodesk.Revit.DB.Document doc, FamilyInstance beam, FamilySymbol cuttingSymbol) { LocationCurve lc = beam.Location as LocationCurve; Curve beamCurve = lc.Curve; for (int i = 1; i <= 3; i++) { XYZ beamLocation = beamCurve.Evaluate(i * 0.25, true); // position on the beam for this cutting instance beamLocation = beamLocation - XYZ.BasisZ; // adjust for top-aligned curve Level level = doc.GetElement(beam.LevelId) as Level; FamilyInstance cuttingInstance = doc.Create.NewFamilyInstance(beamLocation, cuttingSymbol, level, StructuralType.NonStructural); InstanceVoidCutUtils.AddInstanceVoidCut(doc, beam, cuttingInstance); } }
' Cut a beam with 3 instances of a void-cutting family ' The Family Parameter "Cut with Voids When Loaded" must be true for the cutting family Private Sub CutBeamWithFamilyVoid(doc As Autodesk.Revit.DB.Document, beam As FamilyInstance, cuttingSymbol As FamilySymbol) Dim lc As LocationCurve = TryCast(beam.Location, LocationCurve) Dim beamCurve As Curve = lc.Curve For i As Integer = 1 To 3 Dim beamLocation As XYZ = beamCurve.Evaluate(i * 0.25, True) ' position on the beam for this cutting instance beamLocation = beamLocation - XYZ.BasisZ ' adjust for top-aligned curve Dim level As Level = TryCast(doc.GetElement(beam.LevelId), Level) Dim cuttingInstance As FamilyInstance = doc.Create.NewFamilyInstance(beamLocation, cuttingSymbol, level, StructuralType.NonStructural) InstanceVoidCutUtils.AddInstanceVoidCut(doc, beam, cuttingInstance) Next 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