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

ADN Club => Revit API => Тема начата: Алексей (IdeaSoft) от 25-09-2018, 12:07:35

Название: Поменять базовую точку
Отправлено: Алексей (IdeaSoft) от 25-09-2018, 12:07:35
Как в Revit поменять базовую точку?

Вот сделал так

Код - C# [Выбрать]
  1. using RVT_DB = Autodesk.Revit.DB;
  2.  
  3. public RVT_DB.BasePoint getBasePoint(RVT_DB.Document doc) {
  4.         RVT_DB.ElementCategoryFilter filter = new RVT_DB.ElementCategoryFilter(RVT_DB.BuiltInCategory.OST_ProjectBasePoint);
  5.         RVT_DB.FilteredElementCollector collector = new RVT_DB.FilteredElementCollector(doc);
  6.         IList<RVT_DB.Element> elements = collector.WherePasses(filter).ToElements();
  7.         foreach (RVT_DB.Element e in elements)
  8.             if (e is RVT_DB.BasePoint)
  9.                 return e as RVT_DB.BasePoint;  
  10.         return null;
  11. }

 
И функция вернула объект BasePoint
Только вот что-то не понятно:
1) та ли это базовая точка которая мне нужна?
2) Если так, то не понятно как ее поменять
 

Название: Re: Поменять базовую точку
Отправлено: Александр Ривилис от 25-09-2018, 12:41:54
Мне кажется, что тебе нужно менять document.ActiveProjectLocation. Посмотри код здесь: https://knowledge.autodesk.com/de/search-result/caas/CloudHelp/cloudhelp/2015/DEU/Revit-API/files/GUID-A1B6B145-132D-47EF-8B2E-DB1659CB6A0A-htm.html
Там есть такой код :
Код - C# [Выбрать]
  1. ProjectLocation projectLocation = document.ActiveProjectLocation;
  2. XYZ origin = new XYZ(0, 0, 0);
  3. ProjectPosition position = projectLocation.get_ProjectPosition(origin);
Ну а тебе похоже нужно:
Код - C# [Выбрать]
  1. ProjectLocation location = m_application.ActiveUIDocument.Document.ActiveProjectLocation;
  2. Autodesk.Revit.DB.XYZ origin = new Autodesk.Revit.DB.XYZ (0, 0, 0);
  3. ProjectPosition projectPosition = location.get_ProjectPosition(origin);
  4. //change the offset value of the project position
  5. projectPosition.Angle = newAngle * Modulus; //convert the unit
  6. projectPosition.EastWest = newEast;
  7. projectPosition.NorthSouth = newNorth;
  8. projectPosition.Elevation = newElevation;
  9. //set the value of the project position
  10. location.set_ProjectPosition(origin, projectPosition);
  11. m_application.ActiveUIDocument.Document.ActiveProjectLocation = location;
Название: Re: Поменять базовую точку
Отправлено: Алексей (IdeaSoft) от 25-09-2018, 13:56:14
Да я обратил внимание вот так нужно.

location.set_ProjectPosition(origin, projectPosition);
Ну только что разве метод SetProjectPosition
без символа подчеркивания в API 2019
Название: Re: Поменять базовую точку
Отправлено: Александр Ривилис от 25-09-2018, 15:12:41
Ну только что разве метод SetProjectPosition
без символа подчеркивания в API 2019
set_ProjectPosition должно быть и в API 2019.
Название: Re: Поменять базовую точку
Отправлено: Алексей (IdeaSoft) от 25-09-2018, 15:24:18
Странно а у меня ругается без подчеркивания есть, а с подчеркиванием.
вот что.
 подключил к проекту NetFrameWork 4.7.1
Название: Re: Поменять базовую точку
Отправлено: Александр Ривилис от 25-09-2018, 15:37:38
Странно а у меня ругается без подчеркивания есть, а с подчеркиванием.
вот что.
 подключил к проекту NetFrameWork 4.7.1
set_ а не Set_
Название: Re: Поменять базовую точку
Отправлено: Алексей (IdeaSoft) от 25-09-2018, 15:42:36
 и с маленькими буквами тоже пробовал
Название: Re: Поменять базовую точку
Отправлено: Александр Ривилис от 25-09-2018, 15:44:04
и с маленькими буквами тоже пробовал

Только подчеркивает или даёт ошибку при компиляции? Это разные вещи.
Название: Re: Поменять базовую точку
Отправлено: Алексей (IdeaSoft) от 25-09-2018, 15:46:03
компилировать не хочет
Название: Re: Поменять базовую точку
Отправлено: Александр Ривилис от 25-09-2018, 15:47:05
компилировать не хочет

Ok! Будем считать, что переименовали.
Название: Re: Поменять базовую точку
Отправлено: Алексей (IdeaSoft) от 25-09-2018, 15:49:37
вот эта версия Revit
 19.0.0.405
20180216_1515(x64)
Название: Re: Поменять базовую точку
Отправлено: Александр Ривилис от 25-09-2018, 16:13:55
вот эта версия Revit
 19.0.0.405
20180216_1515(x64)
Таки да. Поменяли в Revit 2018:

(https://farm2.staticflickr.com/1909/44187507454_6e1e6722c6_o.png)