Revit二次开发--屏幕截图/图片导出
来源:互联网 发布:如何减腹部的赘肉 知乎 编辑:程序博客网 时间:2024/06/03 19:23
在Revit API中有一个方法Document.ExportImage(),可以将单个或多个视图导出为图片。
该方法需要传递一个ImageExportOptions类型的参数,在参数中你可以自定义需要导出的视图、图片地址、图片大小等。
- 单视图导出
using Autodesk.Revit.Attributes;using Autodesk.Revit.DB;using Autodesk.Revit.UI;namespace ScreenShot{ [Transaction(TransactionMode.Manual)] public class Command : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { ImageExportOptions options = new ImageExportOptions(); options.ZoomType = ZoomFitType.FitToPage; options.ExportRange = ExportRange.CurrentView; options.FilePath = @"C:\Users\Administrator\Desktop\CurrentViewImg"; options.FitDirection = FitDirectionType.Horizontal; options.HLRandWFViewsFileType = ImageFileType.JPEGMedium; options.ShadowViewsFileType = ImageFileType.JPEGMedium; options.PixelSize = 1920; commandData.Application.ActiveUIDocument.Document.ExportImage(options); return Result.Succeeded; } }}
上面代码将当前视图以JPG图片的形式导出到桌面上;如果只想截取当前视窗中可见的部分(截图),可将options.ExportRange设置为VisibleRegionOfCurrentView。
- 多视图导出
using Autodesk.Revit.Attributes;using Autodesk.Revit.DB;using Autodesk.Revit.UI;using System.Collections.Generic;namespace ScreenShot{ [Transaction(TransactionMode.Manual)] public class Command : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { Document doc = commandData.Application.ActiveUIDocument.Document; FilteredElementCollector views = new FilteredElementCollector(doc).OfClass(typeof(View)); views.OfCategory(BuiltInCategory.OST_Views); IList<ElementId> ImageExportList = new List<ElementId>(); foreach (View view in views) { if (view.IsTemplate) continue; ImageExportList.Add(view.Id); } var options = new ImageExportOptions { ZoomType = ZoomFitType.FitToPage, PixelSize = 1920, FilePath = @"C:\Users\Administrator\Desktop\Views\", FitDirection = FitDirectionType.Horizontal, HLRandWFViewsFileType = ImageFileType.JPEGMedium, ShadowViewsFileType = ImageFileType.JPEGMedium, ImageResolution = ImageResolution.DPI_300, ExportRange = ExportRange.SetOfViews }; options.SetViewsAndSheets(ImageExportList); doc.ExportImage(options); return Result.Succeeded; } }}
上面代码将项目中所有视图以JPG图片形式导出到桌面Views文件夹中,如下图所示:
内容或有偏颇之处,还请指正,不胜感激!
2 0
- Revit二次开发--屏幕截图/图片导出
- Flex 屏幕截图并导出图片
- Flex 屏幕截图并导出图片
- Revit 二次开发
- 截图屏幕部分图片
- Revit 二次开发现状(2009)
- Revit 二次开发前景
- Revit 二次开发 - 开发资源
- <Revit二次开发>HelloWorld
- Revit二次开发首次使用
- revit二次开发,隔离构件
- Revit二次开发之入门
- Revit二次开发--"Hello World"
- Revit二次开发--过滤对象
- Revit二次开发曲线操作
- 如何开始Revit二次开发
- Revit二次开发 安装AddinManager
- revit二次开发基础
- Android RecyclerView详解及实现瀑布流式布局
- Google调试总结
- perl中十进制与十六进制互换函数
- 读AtomicBoolean源码之浅析
- CSS3自定义滚动条样式 -webkit-scrollbar
- Revit二次开发--屏幕截图/图片导出
- delete和drop、truncate的区别
- Linux——grep文本搜索命令
- JavaScript 创建存放对象的数组注意的问题
- MFC “0x00402683”指令引用的“0x00000088”内存,该内存不能为written
- 学习笔记第六周——switch语句之加减乘除
- Mybatis映射文件SQL讲解
- AC dream 1730 Use Machine Learning to Find GF
- 基于Nginx实现10万+并发,你应该做的Linux内核优化