Revit は現在のビュー シート セットを変数に保存し、Document.PrintManager.ViewSheetSetting.CurrentViewSheetSet
それが実際に使用されています。最初に を設定するときは、代わりInSession
に を設定する必要がありますCurrentViewSheetSet
。印刷ダイアログを使用した後に機能する理由は、をに設定しているCurrentViewSheetSet
ためInSession
です。私がすることはViewSheetSetting
、ドキュメントを開いたときに一時的に作成し、ドキュメントを閉じるときに削除することです。以下は私が使用したコードの一部ですが、ViewSheetSetting
ドキュメントを開いてからドキュメントを閉じるまでではなく、単一の関数呼び出しのスコープのみを保持しました。
オープン用
const string tempoarySheetSetSettingName = "Temp Sheet Set";
ViewSheetSetting viewSheetSetting = _printManager.ViewSheetSetting;
//Save your temporary sheet set
_printManager.ViewSheetSetting.SaveAs(tempoarySheetSetSettingName);
ViewSheetSet selected = null;
FilteredElementCollector viewCollector = new FilteredElementCollector(document);
viewCollector.OfClass(typeof(ViewSheetSet));
//Find the sheet set that you just created
foreach (ViewSheetSet set in viewCollector.ToElements())
{
if (String.Compare(set.Name, tempoarySheetSetSettingName) == 0)
{
selected = set;
break;
}
}
//Set the current view sheet set to the one that you just created
viewSheetSetting.CurrentViewSheetSet = selected;
//Set the views to which ever set you would like to print
viewSheetSetting.CurrentViewSheetSet.Views = viewSetToPrint;
viewSheetSetting.Save();
印刷用
ユーザーは、印刷するたびに、作成した一時ビュー セットを選択する必要があります。
閉じる
_printManager.ViewSheetSetting.Delete();