Get filter override graphics setting

Hi, I try to copy filter override graphics setting from existing filter to other, so do we have any node to get filter override graphics setting?
I considered Archi-lab package but it doesn’t have that node
I’m new to Dynamo so hope everybody help me please

It is possible but you need to use a custom python node and access via the API. I have an example python script which does this however its just a WIP and does nothing more than return the projection line colour as a Dynamo colour type but it could easily be adapted to get all the other filter settings.

#Copyright 2016. All rights reserved. Bimorph Consultancy LTD, 5 St Johns Lane, London EC1M 4BH www.bimorph.co.uk
#Written by Thomas Mahon @Thomas__Mahon info@bimorph.co.uk Package: bimorphNodes
#GitHub: https://github.com/ThomasMahon/bimorphNodes/
#Follow: facebook.com/bimorphBIM | linkedin.com/company/bimorph-bim | @bimorphBIM

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference('DSCoreNodes')
import DSCore
from DSCore import Color

#Import ToDSType(bool) extension method
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)

# Import geometry conversion extension methods
clr.ImportExtensions(Revit.GeometryConversion)

# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from System.Collections.Generic import *

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application

views = UnwrapElement(IN[0])

colList = []
for v in views:
	filters = v.GetFilters() # Get all the filter ids
	
	rgbList = []
	for f in filters:
		filterObject = v.GetFilterOverrides(f)
		col = filterObject.ProjectionLineColor
		if col.IsValid:
			rgb = DSCore.Color.ByARGB(255, col.Red, col.Green, col.Blue)
		else:
			rgb = None
		rgbList.Add( rgb )
	colList.Add(rgbList)

OUT = colList
4 Likes

Thank you.

Here’s how you can extract graphic override settings from one view filter and then pass it to another without use of Python.

3 Likes

@Thomas_Mahon,

Great response, but I think you over complicated the issue a little bit. I might be wrong, but my understanding was the the OP wants to extract override settings from one view filter and then set other view filters to match those settings. That’s actually possible with OOTB nodes, and doesn’t require much coding which would be the preferred way. What you have demonstrated was to extract the individual setting (line weight or line color) of a whole override settings object. That’s useful if the OP wants to piece meal a few things from one override to another, rather then just unify them.

Exactly what I want. So simple that I didn’t find it :joy:
Thank you very much.

@Konrad_K_Sobon agree - always keep it simple people! I wrote that script before v1.2 (ie before filters were exposed OOTB), some test code others might find useful and an alternative approach if OOTB can’t cut it! Not looked at it since, but in any case, elegant OOTB solution :ok_hand:

When I try to use the filter of a plan view and apply in one 3D view don’t work. How can solved this. Sorry for my bad english