Retrieve Project Browser Organization

Hi! I´mtrying to retrive this information from a project in a dynamo script. I could not get it done. I just retrieve The Project Browser. I Need to retrieve this items from a model:

The class here does the trick. Not aware of any custom packages supporting this in node form currently.

Yes, I´m trying to retrieve those from that code, but steel I could´nt get them :frowning:

Ok share the code you have so people can assist further.

import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
doc = DocumentManager.Instance.CurrentDBDocument

pb = BrowserOrganization.GetCurrentBrowserOrganizationForViews(doc)
name = []
for p in pb.Parameters:
    name.append(p.Element)
OUT = name

This will get you the names. not the elements. OBS Works in 2024 have been having truble getting it to work in older versions. also i doesnt work if you use built in parameters i have no clue why.

dont put anything in to the inputs taken out from a custom node i made

Package SEGOKS if you want a node for it

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

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument

browsers = FilteredElementCollector(doc).OfClass(BrowserOrganization).ToElements()

for b in browsers :
	viewBrowser=b.GetCurrentBrowserOrganizationForViews(doc)
	viewBrowserSheet=b.GetCurrentBrowserOrganizationForSheets(doc)
	
	
View_folders = viewBrowser.GetFolderItems(doc.ActiveView.Id)
output = []
for folder in View_folders:
        fID = doc.GetElement(folder.ElementId).Name
        output.append(fID)

Sheet_folders = viewBrowserSheet.GetFolderItems(doc.ActiveView.Id)
outputb = []
        
for folder in Sheet_folders:
        sID = doc.GetElement(folder.ElementId).Name
        outputb.append(sID)
        

OUT = output,outputb

To clarify


works


will return null

Hi,

try this

Edit Code updated for Project Parameters

import sys
import clr
import System
from System.Collections.Generic import List

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

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
uidoc = uiapp.ActiveUIDocument
app = uiapp.Application
sdkNumber = int(app.VersionNumber)

clr.AddReference("System.Core")
clr.ImportExtensions(System.Linq)

bip_values = [System.Convert.ToInt32(x) for x in System.Enum.GetValues(BuiltInParameter)]

project_view = FilteredElementCollector(doc).OfClass(View).WhereElementIsNotElementType().First(lambda x : x.ViewType == ViewType.ProjectBrowser)

viewBrowser = BrowserOrganization.GetCurrentBrowserOrganizationForViews(doc)


view_folders = viewBrowser.GetFolderItems(project_view.Id)
output = []
for folder in view_folders:
    id_value = getattr(folder.ElementId, "Value" if sdkNumber >= 2024 else "IntegerValue")
    if id_value in bip_values:
        para_bip = System.Enum.ToObject(BuiltInParameter, id_value) 
        output.append(LabelUtils.GetLabelFor(para_bip))
    else:
        para_elem = doc.GetElement(folder.ElementId)
        output.append(para_elem.Name)
    
    
OUT = output