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:
1 Like
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
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
1 Like
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