Группировка элементов по этажам
Главная › Форумы › Задать вопрос › Группировка элементов по этажам
Помечено: группировка
- В этой теме 7 ответов, 3 участника, последнее обновление 6 лет, 1 месяц назад сделано Анатолий.
-
АвторСообщения
-
владимирУчастник
- Здание в 30 этажей.
- Как сгруппировать/отсортировать перекрытия (стены, колонны …), по этажам.
- В 3Д виде назначить каждому этажу цвет либо (условно) синий либо (условно) красный и чередовать их.
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`владимирУчастникОгромное спасибо, за уделенное мне время.
С ноля пытаюсь осваивать Питон … попробую разбираться.
владимирУчастникНе получается …
Уже начиная со второго нода Element.GetParameterValueByName вы производите манипуляции уже не с элементами, а с листами с именами перекрытий и далее просто с цифрами, они сортируются, группируются, разделяются, а в конце подаете на нод требующий элемента (перекрытия в данном случае) список с этими цифрами. Вот и ошибка.
владимирУчастникМда … я так и подозревал, что произвожу операции с цифрами, не имеющими связи с обьектами.
Пытаюсь получить в результате сгруппированные списки, в виде … 0 List (все перекрытия 0 этажа); 1 List (все перекрытия 1 этажа) … и.т.д.
На Питон пока нет времени, да и не очень он мне дается. Забил вручную, те кода на питоне, что вы ответили. Забил английские аналоги параметров (у меня английский Ревит). Выдает ошибку.
Если честно, мне разбираться в поисках необходимых нодов, чтобы правильно выполнить все эти операции наверное то же, что вам разбираться в питоне. Покажите какие ошибки выдает питон и картинку с кодом, что записали.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.