InstanceVoidCutUtils.AddInstanceVoidCut
Description:
Add a cut to an element using the unattached voids inside a cutting instance.
Add a cut to an element using the unattached voids inside a cutting instance.
// 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);
}
}
-
The element cannot be cut with a void instance. -or- The element is not a family instance with an unattached void that can cut.
-
A non-optional argument was null
-
This method may not be called during dynamic update.
-
Failed to cut element with the instances