RevitAPI содержит два класса для работы с вырезанием геометрии:
SolidSolidCutUtils и
InstanceVoidCutUtils.
Первый класс вы уже уопомянули и даннный класс не подходит для того чтобы вырезать геометрию между экземпляром семейства и рабочей плоскостью.
Второй класс на первый взгляд является более подходящим. Единственный метод предназначенный для вырезания геометрии,
AddInstanceVoidCut, в качестве входящих параметров принимает два элемента. Первый - элемент, для которого необходимо вырезать геометрию, и второй - элемент, с помощью которого будет происходить вырезание.
public static void AddInstanceVoidCut(
Document document,
Element element,
Element cuttingInstance
)
Однако, второй элемент должен быть экземпляром семейства:
cuttingInstance
Type: Autodesk.Revit.DB..::..Element
The cutting family instance
На всякий случай попробовал выполнить этот метод для балки и рабочей поверхности. Ожидаемо получил ошибку.
Похоже это тот случай, когда операцию можно выполнить в интерфейсе, но нельзя выполнить с помощью API.
Задал вопрос в службу поддержки, чтобы на 100% убедиться. О результатах сообщу.