Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: enot от 04-02-2019, 13:18:57

Название: NewDimension для ViewSection
Отправлено: enot от 04-02-2019, 13:18:57
День добрый.
Подскажите, как можно создать размер (по вертикали) от уровня  до семейства (или любого элемента) на разрезе ? Думаю у меня проблема в определении XYZ точек на виде (как я понимаю, разрез представляет собой sectionBox, и одна его сторона является линией разреза)...

Название: Re: NewDimension для ViewSection
Отправлено: Александр Игнатович от 04-02-2019, 13:22:42
Да точно так же, как и на плане. Нужно получить reference-ы (из семейства, оси, уровня, whatever else). Линия размера, в Вашем случае будет иметь направление view.UpDirection
Название: Re: NewDimension для ViewSection
Отправлено: enot от 04-02-2019, 13:27:48
view.UpDirection
Можно какой нибудь пример?
Название: Re: NewDimension для ViewSection
Отправлено: Александр Игнатович от 04-02-2019, 13:30:33
Да пожалуйста. На Revit Python shell:
Код - Python [Выбрать]
  1. def FindFloor():
  2.         return FilteredElementCollector(doc, doc.ActiveView.Id).OfClass(Floor).FirstElement()
  3.        
  4. def FindLevel():
  5.         return FilteredElementCollector(doc, doc.ActiveView.Id).OfClass(Level).FirstElement()
  6.        
  7. floor = FindFloor()
  8. level = FindLevel()
  9.  
  10. references = ReferenceArray()
  11. references.Append(HostObjectUtils.GetBottomFaces(floor)[0])
  12. references.Append(Reference(level))
  13.  
  14. dimLine = Line.CreateUnbound(XYZ.Zero, doc.ActiveView.UpDirection)
  15.  
  16. tx = Transaction(doc, "create dimension")
  17. tx.Start()
  18.  
  19. doc.Create.NewDimension(doc.ActiveView, dimLine, references)
  20.  
  21. tx.Commit()

Название: Re: NewDimension для ViewSection
Отправлено: enot от 04-02-2019, 13:31:49
Значит, для вертикального размера используем
doc.ActiveView.UpDirection
Есть еще пара вопросов

1.) А для горизонтального , вероятно, :

doc.ActiveView.RightDirection ?

2.)  в Line.CreateUnbound(XYZ.Zero, doc.ActiveView.UpDirection) => XYZ.Zero - это ноль проекта?