So I am trying to override crop region properties in all views with specific view template
import clr
clr.AddReference('RevitAPI')
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from Autodesk.Revit.DB import *
# Define variables
element = UnwrapElement(IN[0])
views = UnwrapElement(IN[1])
line_weight = IN[2]
line_pattern = UnwrapElement(IN[3])
# Get current doc
doc = DocumentManager.Instance.CurrentDBDocument
# Start Transaction
TransactionManager.Instance.EnsureInTransaction(doc)
# Loop through each view
for view in views:
# Get the view ID
view_id = view.Id
# Override element in view
override_settings = OverrideGraphicSettings()
override_settings.SetProjectionLineWeight(line_weight)
override_settings.SetProjectionLinePatternId(line_pattern.Id)
doc.ActiveView.SetElementOverrides(element.Id, override_settings, view_id)
# End Transaction
TransactionManager.Instance.TransactionTaskDone()
# Output
OUT = 0
The error I get “Warning: AttributeError : ‘list’ object has no attribute ‘Id’ [’ File “”, line 38, in \n’]”
Any idea?
Ok I looped through elements list as well but I got “No method matches given arguments for SetElementOverrides” error
import clr
clr.AddReference('RevitAPI')
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from Autodesk.Revit.DB import *
# Define variables
elements = UnwrapElement(IN[0])
views = UnwrapElement(IN[1])
line_weight = IN[2]
line_pattern = UnwrapElement(IN[3])
# Get current doc
doc = DocumentManager.Instance.CurrentDBDocument
# Start Transaction
TransactionManager.Instance.EnsureInTransaction(doc)
# Loop through each element/ view
for element, view in zip(elements, views):
# Get the view ID
view_id = view.Id
# Override element in view
override_settings = OverrideGraphicSettings()
override_settings.SetProjectionLineWeight(line_weight)
override_settings.SetProjectionLinePatternId(line_pattern.Id)
doc.ActiveView.SetElementOverrides(element.Id, override_settings, view_id)
# End Transaction
TransactionManager.Instance.TransactionTaskDone()
# Output
OUT = 'ok'
import clr
clr.AddReference('RevitAPI')
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from Autodesk.Revit.DB import *
# Define variables
elements = UnwrapElement(IN[0])
views = UnwrapElement(IN[1])
line_weight = IN[2]
line_pattern = UnwrapElement(IN[3])
# Get current doc
doc = DocumentManager.Instance.CurrentDBDocument
# Start Transaction
TransactionManager.Instance.EnsureInTransaction(doc)
# Loop through each element/ view
for element, view in zip(elements, views):
# Get the view ID
view_id = view.Id
# Override element in view
override_settings = OverrideGraphicSettings()
override_settings.SetProjectionLineWeight(line_weight)
override_settings.SetProjectionLinePatternId(line_pattern.Id)
view.SetElementOverrides(element.Id, override_settings)
# End Transaction
TransactionManager.Instance.TransactionTaskDone()
# Output
OUT = 'ok'
I also switched to View. instead of ActiveView
Thanks @manhgt214