Hide/Unhide Detail Line via Style Name

Recently @c.poupin was a huge help with hide/unhide text script as seen below:
Hide/Unhide Text via Type Name:

import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

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

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)

import System
from System.Collections.Generic import List

ueWrapper = None
wrappers = clr.GetClrType(Revit.Elements.ElementWrapper).GetMethods()
for w in wrappers:
	if w.ToString().startswith("Revit.Elements.UnknownElement"):
		ueWrapper = w
		break

def hideElements(textNotes):
	for i in textNotes:
		v = doc.GetElement(i.OwnerViewId)
		if not i.IsHidden(v) and i.CanBeHidden(v):
			v.HideElements(List[ElementId]([i.Id]))

def unHideElements(textNotes):
	for i in textNotes:
		v = doc.GetElement(i.OwnerViewId)
		if i.IsHidden(v):
			v.UnhideElements(List[ElementId]([i.Id]))
	

nameType = IN[0]
hideBool =  IN[1]
#filter constuction
pvp = ParameterValueProvider(ElementId(BuiltInParameter.SYMBOL_NAME_PARAM))
evaluator = FilterStringEquals()
rule = FilterStringRule(pvp, evaluator, nameType, True)
filter = ElementParameterFilter(rule)
textNotes = FilteredElementCollector(doc).OfClass(TextNote).WherePasses(filter).ToElements()

TransactionManager.Instance.EnsureInTransaction(doc)
if hideBool:
	hideElements(textNotes)
else:
	unHideElements(textNotes)
TransactionManager.Instance.TransactionTaskDone()	

#by pass the out Wrapper for Dynamo 2.0.4 
textNotesUnwrap = [ueWrapper.Invoke(None, (txtN, False)) for txtN in textNotes ]

OUT = textNotesUnwrap

Could this be adapted to hide/unhide Detail Line via Style Name?

Thanks.

Yes it can be with modification:

import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

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

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)

import System
from System.Collections.Generic import List

def hideElements(elem):
	res = []
	for i in elem:
		v = doc.GetElement(i.OwnerViewId)
		if not i.IsHidden(v) and i.CanBeHidden(v):
			v.HideElements(List[ElementId]([i.Id]))
			res.append(doc.GetElement(i.Id))
	return res
		
def unHideElements(elem):
	res = []
	for i in elem:
		v = doc.GetElement(i.OwnerViewId)
		if i.IsHidden(v):
			v.UnhideElements(List[ElementId]([i.Id]))
			res.append(doc.GetElement(i.Id))
	return res
	

line_style_Name = IN[0]
hideBool =  IN[1]
#filter constuction

fec_lines = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Lines).ToElements().FindAll(lambda x : Element.Name.GetValue(x)  == "Detail Lines")
lines = [x for x in fec_lines if x.LineStyle.Name == line_style_Name]
TransactionManager.Instance.EnsureInTransaction(doc)
if hideBool:	
	result = hideElements(lines)
else:
	result = unHideElements(lines)
TransactionManager.Instance.TransactionTaskDone()	

OUT = result
2 Likes