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();
感謝您的回覆。我很早就想到了,臨時視圖集是我在最後做的...... – alital 2014-04-14 01:35:39