Группировка элементов по этажам

Главная Форумы Задать вопрос Группировка элементов по этажам

Помечено: 

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Автор
    Сообщения
  • #8536 Score: 0
    владимир
    Участник
    1. Здание в 30 этажей.
    2. Как сгруппировать/отсортировать перекрытия (стены, колонны …), по этажам.
    3. В 3Д виде назначить каждому этажу цвет либо (условно) синий либо (условно) красный и чередовать их.

    #8539 Score: 0
    Анатолий
    Участник
    37 pts

    1.

    2.`import clr
    clr.AddReference(“RevitAPI”)
    import Autodesk
    from Autodesk.Revit.DB import *
    clr.AddReference(“RevitServices”)
    import RevitServices
    from RevitServices.Persistence import DocumentManager
    doc = DocumentManager.Instance.CurrentDBDocument
    from operator import itemgetter
    wall=FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).WhereElementIsNotElementType().ToElements()
    column=FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_StructuralColumns).WhereElementIsNotElementType().ToElements()
    floor=FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Floors).WhereElementIsNotElementType().ToElements()
    lk,ll,lm = [],[],[]
    for k in wall:
    r = k.LookupParameter(“Базовая зависимость”).AsValueString()
    lk.append(r)
    for l in column:
    s = l.LookupParameter(“Базовый уровень”).AsValueString()
    ll.append(s)
    for m in floor:
    t = m.LookupParameter(“Уровень”).AsValueString()
    lm.append(t)
    OUT = lk,wall,ll,column,lm,floor`
    3. `import clr
    clr.AddReference(‘ProtoGeometry’)
    from Autodesk.DesignScript.Geometry import *
    a = IN[0]
    list1,list2 = [],[]
    for k,l in zip(range(len(a)),a):
    ul = UnwrapElement(l)
    if k%2:
    list1.append(l)
    else:
    list2.append(l)
    OUT = dir(ul)
    OUT = list1,list2`

    #8543 Score: 0
    владимир
    Участник

    Огромное спасибо, за уделенное мне время.

    С ноля пытаюсь осваивать Питон … попробую разбираться.

    #8547 Score: 1
    Александр
    Участник
    16 pts

    Вот ответ на вопрос 2.Как сгруппировать/отсортировать перекрытия (стены, колонны …), по этажам.т на

    #8549 Score: 0
    владимир
    Участник

     

    Не получается …

    #8550 Score: 0
    Анатолий
    Участник
    37 pts

    Уже начиная со второго нода Element.GetParameterValueByName вы производите манипуляции уже не с элементами, а с листами с именами перекрытий и далее просто с цифрами, они сортируются, группируются, разделяются, а в конце подаете на нод требующий элемента (перекрытия в данном случае) список с этими цифрами. Вот и ошибка.

    #8551 Score: 0
    владимир
    Участник

    Мда … я так и подозревал, что произвожу операции с цифрами, не имеющими связи с обьектами.

    Пытаюсь получить в результате сгруппированные списки, в виде … 0 List (все перекрытия 0 этажа); 1 List (все перекрытия 1 этажа) … и.т.д.

    На Питон пока нет времени, да и не очень он мне дается. Забил вручную, те кода на питоне, что вы ответили. Забил английские аналоги параметров (у меня английский Ревит). Выдает ошибку.

     

    #8553 Score: 0
    Анатолий
    Участник
    37 pts

    Если честно, мне разбираться в поисках необходимых нодов, чтобы правильно выполнить все эти операции наверное то же, что вам разбираться в питоне. Покажите какие ошибки выдает питон и картинку с кодом, что записали.

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Для ответа в этой теме необходимо авторизоваться.