Comment retrouver l'Arborescence des Vues d'un Projet Revit ?
#DynamoBIM #Revit #Python #RevitAPI
#BrowserOrganization #AutodeskExpertElite #AutodeskCommunity
if this article is not in your language, use the Google Translate
widget ⬈ (bottom of page for Mobile version ⬇)
Vous souhaitez vérifier comment sont regroupées les vues dans l'arborescence d'un Projet ?
Voici un script pour analyser et extraire des informations sur la façon dont les vues sont organisées dans le navigateur de projet Revit, en regardant spécifiquement comment les vues sont catégorisées soit par des paramètres intégrés, soit par d'autres paramètres de projet grâce à l'API Revit.
code IronPython2 ou 3 (utilisation des méthodes d'extension LINQ)
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
0 commentaires:
Enregistrer un commentaire