RevitAPI: 设置打印的视图ViewSheetSetting.InSession.Views
2015-04-07 16:34
585 查看
我们要修改Revit的打印设置,该设置可以使用Document.PrintManager属性来访问,其中ViewSheetSetting对应的就是打印哪些视图的设置,
但是使用API访问Document.PrintManager.ViewSheetSetting的时候会抛出异常:
InvalidOperationException "This property is only available when user choose Select of Print Range."
解决的办法是:在打印之前的对话框里面,把”打印范围“设置为”所选视图/图纸"。见下图:
上面的问题解决之后,我们就可以通过ViewSheetSetting.InSession.Views来设置需要打印的视图了。
做法就是:
1. 新建一个ViewSet
2. 过滤出所有的View
3. 判断View.CanBePrinted值为true
4. 把你想要打印的view加到一个ViewSet里面
5. 设置ViewSheetSetting.InSession.Views为新建的ViewSet (需要放到Transaction里)
代码示例:
但是使用API访问Document.PrintManager.ViewSheetSetting的时候会抛出异常:
InvalidOperationException "This property is only available when user choose Select of Print Range."
解决的办法是:在打印之前的对话框里面,把”打印范围“设置为”所选视图/图纸"。见下图:
上面的问题解决之后,我们就可以通过ViewSheetSetting.InSession.Views来设置需要打印的视图了。
做法就是:
1. 新建一个ViewSet
2. 过滤出所有的View
3. 判断View.CanBePrinted值为true
4. 把你想要打印的view加到一个ViewSet里面
5. 设置ViewSheetSetting.InSession.Views为新建的ViewSet (需要放到Transaction里)
代码示例:
RevitDoc = commandData.Application.ActiveUIDocument.Document; var pm = RevitDoc.PrintManager; try { var vss = pm.ViewSheetSetting; ViewSet set = new ViewSet(); var classFilter = new ElementClassFilter(typeof(View)); FilteredElementCollector views = new FilteredElementCollector(RevitDoc); views = views.WherePasses(classFilter); foreach (View view in views) { if (view.CanBePrinted) { set.Insert(view); } } using (Transaction transaction = new Transaction(RevitDoc)) { transaction.Start("Set in-session views"); vss.InSession.Views = set; transaction.Commit(); } } catch (Exception ex) { TaskDialog.Show("ERROR", ex.ToString()); }
相关文章推荐
- OpenSessionInView设置
- Struts整合Spring 之OpenSessionInView设置
- sharepoint 2010 列表的数据表视图无法使用 the list cannot be displayed in datasheet view 解决方法
- hibernate4 添加懒加载后设置openSessionInViewFilter
- RevitAPI: 修改视图View裁剪区域Cropbox的大小
- OpenSessionInView详解
- Hibernate/Spring/Struts架构使用OpenSessionInView的问题
- spring 的OpenSessionInViewFilter简介(1)
- spring 的OpenSessionInViewFilter简介(2)
- Open Session In View探讨
- OpenSessionInViewFilter问题
- Hibernate open session in view
- Open Session In View 探讨
- Open Session In View探讨
- Open Session in View
- 关于OpenSessionInView的学习和使用
- Open Session In View
- OpenSessionInView模式
- 谨慎使用OpenSessionInViewFilter
- 转载:OpenSessionInViewFilter