Skip to content

Instantly share code, notes, and snippets.

@thomascorrie
Created August 10, 2018 13:57
Show Gist options
  • Save thomascorrie/4a9653c8b1e86ed1fa52347482d7e42e to your computer and use it in GitHub Desktop.
Save thomascorrie/4a9653c8b1e86ed1fa52347482d7e42e to your computer and use it in GitHub Desktop.
Library Python for Dynamo
# Enable Python support and load DesignScript library
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
#Import System for ICollection support
import System
from System.Collections.Generic import *
# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
#Import time for ability to sleep
import time
#IN
elem = UnwrapElement(IN[0])
view = UnwrapElement(IN[1])
names = IN[2]
filePath = IN[3]
#Export Image Options
ieo = Autodesk.Revit.DB.ImageExportOptions()
ieo.HLRandWFViewsFileType = System.Enum.Parse(Autodesk.Revit.DB.ImageFileType, "JPEGLossless")
ieo.ImageResolution = System.Enum.Parse(Autodesk.Revit.DB.ImageResolution, "DPI_150")
ieo.PixelSize = 1500
ieo.FitDirection = System.Enum.Parse(Autodesk.Revit.DB.FitDirectionType, "Horizontal")
ieo.Zoom = 100
ieo.ExportRange = System.Enum.Parse(Autodesk.Revit.DB.ExportRange, "CurrentView")
#Based on Archi-Lab: View.HideElements
ids = List[ElementId]()
for i in elem:
#if not i.IsHidden(view) and i.CanBeHidden(view):
ids.Add(i.Id)
TransactionManager.Instance.EnsureInTransaction(doc)
view.UnhideElements(ids)
#view.HideElements(ids)
#time.sleep(5)
doc.Regenerate()
uidoc.RefreshActiveView()
TransactionManager.Instance.TransactionTaskDone()
#time.sleep(10)
#exit()
ids.Reverse()
count = 0
for i in ids:
id = List[ElementId]()
id.Add(i)
#time.sleep(2)
doc.Regenerate()
uidoc.RefreshActiveView()
TransactionManager.Instance.TransactionTaskDone()
#time.sleep(1)
ieo.FilePath = filePath + "_" + names[count]
TransactionManager.Instance.EnsureInTransaction(doc)
doc.ExportImage(ieo)
TransactionManager.Instance.TransactionTaskDone()
TransactionManager.Instance.EnsureInTransaction(doc)
view.HideElements(id)
#view.UnhideElements(id)
ElementTransformUtils.MoveElement(doc, i, XYZ.BasisX)
ElementTransformUtils.MoveElement(doc, i, XYZ.BasisX.Negate())
TransactionManager.Instance.TransactionTaskDone()
TransactionManager.Instance.EnsureInTransaction(doc)
count = count + 1
#OUT
OUT = 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment