Advertisement
IvaSerge

ParseSharedParamFile

Jan 31st, 2018
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.96 KB | None | 0 0
  1. import clr
  2. clr.AddReference('ProtoGeometry')
  3. from Autodesk.DesignScript.Geometry import *
  4.  
  5. clr.AddReference('RevitAPI')
  6. import Autodesk
  7. from Autodesk.Revit.DB import *
  8.  
  9. clr.AddReference("System")
  10. import System
  11. from System.Collections.Generic import List
  12.  
  13. clr.AddReference("RevitNodes")
  14. import Revit
  15. clr.ImportExtensions(Revit.Elements)
  16. clr.AddReference("RevitServices")
  17. import RevitServices
  18. from RevitServices.Persistence import DocumentManager
  19. from RevitServices.Transactions import TransactionManager
  20.  
  21.  
  22. #---------------------Open File and Revit application---------
  23. curdoc = DocumentManager.Instance.CurrentDBDocument
  24. uiapp = DocumentManager.Instance.CurrentUIApplication
  25. app = uiapp.Application
  26.  
  27. #---------------------Python Parameters------------------------
  28. gropList = list()
  29. paramList = list ()
  30. paramProperty = list()
  31. outList = list()
  32.  
  33. #---------------------INPUT information---------------------
  34. sPfile = app.OpenSharedParameterFile()
  35.  
  36. #Получаем все группы из файла общих параметров
  37. #Это Энумератор. Для получения элементов нужен цикл.
  38. spGroups = sPfile.Groups.GetEnumerator()
  39. gropNames = list()
  40. while (spGroups.MoveNext()):
  41.     gropList.append(spGroups.Current)
  42.  
  43.  
  44. #Получение списка Описания параметров для каждой группы
  45. #а заодно и получение имени группы.
  46. for group in gropList:
  47.     paramList.append(group.Definitions)
  48.     gropNames.append(group.Name)
  49.  
  50. #Из описания параметров можно получить любую необходимую информацию
  51. i = 0
  52. for group in paramList:
  53.     outList.append([])
  54.     k=0
  55.     for param in group:
  56.         outList[i].append([])
  57.         outList[i][k].append(param.Name)
  58.         outList[i][k].append(param.ParameterType)
  59.         outList[i][k].append(param.ParameterGroup)
  60.         outList[i][k].append(param.Description)
  61.         k +=1
  62.     i += 1 
  63.  
  64. OUT = gropNames, outList
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement