Как в координатах узнать положение Viewport или ScheduleSheetInstance на листе

Автор Тема: Как в координатах узнать положение Viewport или ScheduleSheetInstance на листе  (Прочитано 2040 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн oskokosАвтор темы

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Как в координатах узнать положение Viewport или ScheduleSheetInstance на листе?


Оффлайн oskokosАвтор темы

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
c Viewport разобрался: XYZ xyz1 = element.GetBoxCenter();
Осталась спецификация

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc

Оффлайн Илья Дрягин

  • ADN OPEN
  • Сообщений: 25
  • Карма: 2
  • Стройтэкпроект
Обнаружил аномалию, связанную с ScheduleSheetInstance.Point
При размещении разных спецификаций с указанием одних и тех же координат спецификации на листе оказываются в разных позициях
1. все сработало правильно, круги - это ноль, указание нулевых координат на листе, и спецификация и штамп в нуле по координате Х




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




Сначала подумал, что в спецификациях где то есть внутреннее смещение, но ничего похожего не нашел

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Point не изменяется при разделении спецификации, но, похоже, что это не твой случай.

Есть вариант rvt-шечку посмотреть?

Оффлайн enot

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
та же самая беда (давний вопрос), но с разрезами и titleblock
если вставлять на лист через вьюпорт в точку XYZ.Zero бывает что улетает в другую сторону
вот тут похожая проблема для dwg
https://forums.autodesk.com/t5/revit-structure-forum/revit-to-dwg-viewports-showing-wrong-location-in-model-space/td-p/5426776?profile.language=ru

Когда создаешь viewSheet его TitleBlock имеет разную точку XYZ.Zero

« Последнее редактирование: 04-03-2021, 15:37:50 от enot »

Оффлайн Илья Дрягин

  • ADN OPEN
  • Сообщений: 25
  • Карма: 2
  • Стройтэкпроект
Есть вариант rvt-шечку посмотреть?
К сожалению нет, тестирую на рабочем проекте. Решил вопрос через сравнивание Point и минимального значение баундинг бокса по Х, если не совпадают, то двигать Point на разницу

           
Код - C# [Выбрать]
  1. ScheduleSheetInstance newSch = ScheduleSheetInstance.Create(doc, sheet.Id, sch.Id, startpoint);
  2.                        
  3. //check position
  4. BoundingBoxXYZ schBB = newSch.get_BoundingBox(sheet);
  5.  
  6. if (schBB.Min.X != startpoint.X - constBBdiff) newSch.Point = new XYZ(newSch.Point.X - (schBB.Min.X - newSch.Point.X) -constBBdiff, newSch.Point.Y, newSch.Point.Z);


constBBdiff - число с форума автодеск на которое баундинг бокс больше графики спецификации