Add a cut to an element using the unattached voids inside a cutting instance.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 22.0.0.0 (22.1.0.0)
Since: 2011
Syntax
C# |
---|
|
Visual Basic |
---|
|
Visual C++ |
---|
|
Parameters
- document
- Type: Autodesk.Revit.DB Document
The document containing the two elements
- element
- Type: Autodesk.Revit.DB Element
The element to be cut
- cuttingInstance
- Type: Autodesk.Revit.DB Element
The cutting family instance
Examples

// 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
Exceptions
Exception | Condition |
---|---|
Autodesk.Revit.Exceptions 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. |
Autodesk.Revit.Exceptions ArgumentNullException | A non-optional argument was null |
Autodesk.Revit.Exceptions ForbiddenForDynamicUpdateException | This method may not be called during dynamic update. |
Autodesk.Revit.Exceptions InvalidOperationException | Failed to cut element with the instances |