Retrieve Project Browser Organization

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
6 Likes