Revit の「フィルタ」と同様に機能する「スマート フィルタ」を作成しようとしていますが、要素を他の方法でグループ化します(ファミリ タイプ、ワークセット、レベル、さらには「マーク」など)。これらのパラメーターを分離するコレクションを作成するのは簡単ですが、「チェック」したままにした要素のみを含めるように変更された document.selection でプログラムを終了できないようです。
私のプログラムは、「Hide In View」、「Halftone」、「Delete」などの残りの「チェック済み」要素を操作できますが、結果の選択に対して実行できる操作のリストが長すぎて、それらを含めることができませんすべてがダイアログフォームに含まれています - 「選択を設定」というラジオボタンを選択するだけで、選択した要素でプログラムを終了させるオプションが必要です。
私が試してみました:
doc.Selection.Elements.Add(Element *****);
doc.Selection.Elements.Remove(Element *****);
これらは、「オブジェクトのインスタンスではありません」というエラーを返します。
Revit の「フィルタ」を終了すると、結果は変更された選択になります。C# アドインで同じことを行う方法はありますか?