Isolate Elements temporary

Hi guys, i am trying to use this option IsolateElementsTemporary in Revit API. I already filtered theses elements and now i have a list with them but now how can i isolate them temporary?

1 Like

Welcome, …
Please, do introduce yourself, and give us some context and code.

@brunodias ,

your are looking for that ?

doc = __revit__.ActiveUIDocument.Document
uidoc     = __revit__.ActiveUIDocument
selection = uidoc.Selection #type: Selection
isoView = doc.ActiveView

def uwlist(input):
    result = input if isinstance(input, list) else [input]
    return result

# 🛒 PickElemnetsbyRectangle
elements = selection.PickElementsByRectangle('Elements')


idlist = List[ElementId]()

for e in elements:
	idlist.Add(e.Id)

# 🔓 Do some action in a Transaction
t = Transaction(doc,"isolate")
t.Start()

if len(elements) > 0:
	isoView.IsolateElementsTemporary(idlist)

t.Commit()
# 🔒 done

i used a rectangle to isolate my elements.

Sorry, Jean. I should introduce myself before.

Hi everyone, I’m still learning how to use pyrevit and the revit API. I already know the basics enough about Python to start creating my own add-ins.

The context is that I work with piping in Revit and now I have many pipes, connections and accessories with the shared parameter LINE and P&ID filled in so I need to filter these elements more easily. this is the reason I asked about IsolateElementsTemporary.

Andreas, thank you!

it worked but as i am a rookie in Revit API i did not understand very well.

to complete the script i just needed to solve it > TypeError: expected ICollection[ElementId], got ElementId

i did as you showed but actually i would like to understand the different between Collection[ElementId] and ElementId. Could you help with it?

1 Like

@brunodias ,

i know how hard it is to learn from scretch coding… :wink:

in my snippets there are not the moduls included… you have to import them as well.

here the code in total!

# -*- coding: utf-8 -*-
__title__ = "IsolateTemporary"
__doc__ = """Date    = 29.12.2023
_____________________________________________________________________
Description:
isolate Elements by selection
_____________________________________________________________________
Author: """

# IMPORTS
#==================================================
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Architecture import *
from Autodesk.Revit.UI.Selection import ObjectType, PickBoxStyle, Selection

# pyrevit
from pyrevit import forms, revit, script, DB

# .NET Imports
import clr
clr.AddReference("System")
from System.Collections.Generic import List

uidoc = __revit__.ActiveUIDocument
doc   = __revit__.ActiveUIDocument.Document

doc = __revit__.ActiveUIDocument.Document
uidoc     = __revit__.ActiveUIDocument
selection = uidoc.Selection #type: Selection
isoView = doc.ActiveView

# 🛒 PickElemnetsbyRectangle
elements = selection.PickElementsByRectangle('Elements')

idlist = List[ElementId]()

for e in elements:
	idlist.Add(e.Id)

# 🔓 🔒  Do some action in a Transaction
with revit.Transaction("isolate"):
    if len(elements) > 0:
	    isoView.IsolateElementsTemporary(idlist)

1 Like