Dynamo---Revit模型批量高清截图,不了解一下?
你好,这里是牛侃BIM,越来越多的朋友们走上了Dynamo应用的路,它给我们的工作效率带来了极大的提升,举个例子,我们往往在项目中会把三维视图做好并命名,完后还会截图给业主或者领导看,我们手动取截图效率较低,今天我们介绍一下如何快速批量截图,并将截图放在指定的文件夹中,而且图片的名称也会自动命名。
第一步:
首先我们获取到所有视图,并筛选出我们需要导出的视图(我这里选择了3D视图,也就是ThreeD,大家可以自行选择,在revit API文档中查找到的viewtype如下图2:)
我们看到在本项目中获取到了我想要的23个三维视图:
代码如下:
import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
views=[]
collector = FilteredElementCollector(doc).OfClass(View)
for view in collector:
if view.ViewType == ViewType.ThreeD:
views.append(view)
OUT =views
之后使用自带的节点:listclean去除空值,如果上一步得到的视图中没有空值此步骤可以省略:
第二步:
我们调用最开始提到的方法,设置图片的格式、位置、大小将视图导出到指定的文件夹中。
当我们点击运行后,首先后弹出以下对话框,我们选择要将图片保存到的文件夹,这时候可以给图片一个统一的前缀名,完后点弹窗的保存键即可默默等待:
代码如下:
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('System.Windows.Forms')
from System.Windows.Forms import *
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference('RevitAPIUI')
import Autodesk
from Autodesk.Revit.UI import *
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
uiapp=DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
views=UnwrapElement(IN[0])
window = SaveFileDialog()
#定义弹出窗口
window.Title = '视图导出 PNG'
window.Filter = 'PNG files (*.PNG)|*.PNG'
def CreateViewSet(views):
viewSet = []
for i in views:
viewSet.Add(i.Id)
return viewSet
if window.ShowDialog() == DialogResult.OK:
#调用的方法需要传递一个ImageExportOptions类型的参数,在参数中你可以自定义需要导出的视图、图片地址、图片大小等(本行注释来源与网络)
options = ImageExportOptions()
##多视图为setofviews,当前视图为.CurrentView
options.ExportRange = ExportRange.SetOfViews
options.SetViewsAndSheets(CreateViewSet(views))
#定义图片的保存位置
options.FilePath = window.FileName
options.HLRandWFViewsFileType = ImageFileType.PNG
options.ImageResolution = ImageResolution.DPI_600
options.ZoomType = ZoomFitType.Zoom
options.ShadowViewsFileType = ImageFileType.PNG
doc.ExportImage(options)
文章完……
长按二维码添加牛侃BIM官方微信,即可入群,和小伙伴们一起交流学习哦。