1

InSession.Viewsプロパティの設定に取り組んだ人はいますか?私が抱えている問題は、ドキュメントを開いた直後に次のプロパティを設定すると機能しないことです (つまり、viewSet4 つのアイテムがあるにもかかわらず、ビューのサイズがまだ 0 のままです)。

revitDocument.PrintManager.ViewSheetSetting.InSession.Views = viewSet;

しかし、 の印刷ダイアログを使用してインセッション ビュー/シート セットを変更した後revit、それに割り当てることができます。

誰かが理由を知っていますか?

4

2 に答える 2

0

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();
于 2014-04-08T15:36:48.513 に答える