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

ADN Club => Revit API => Тема начата: Алексей (IdeaSoft) от 20-09-2018, 21:54:38

Название: Пользовательская система координат
Отправлено: Алексей (IdeaSoft) от 20-09-2018, 21:54:38
Есть несколько сотен файлов rvt с точетными объектами строительства. Всё модели расположены рядом с точкой x=0;y=0. По коорд. Z все нормально. Хочу сделать плагин, который установит для каждого файла пользовательский систему координат. Какими классами и методами revit API мне воспользоваться, что бы задать каждому файлу свою систему координат.
Ну или как альтернатива сдвинуть все модель на нужное мне смещение. И еще нужно повернуть систему координат на угол.
Название: Re: Пользовательская система координат
Отправлено: Александр Ривилис от 20-09-2018, 21:57:01
Алексей (IdeaSoft),
Ты в очередной раз создал тему не в том разделе. Доколе? Или ты раздел Revit API не видишь, в котором уже создавал темы?
Тема перенесена.
Название: Re: Пользовательская система координат
Отправлено: Алексей (IdeaSoft) от 20-09-2018, 22:09:19
Да раздел Ревит вижу. С телефона пишу. Не удобно. Вот и щёлкнул ни туда.
Извиняюсь.
Название: Re: Пользовательская система координат
Отправлено: Александр Ривилис от 20-09-2018, 23:26:26
Ну или как альтернатива сдвинуть все модель на нужное мне смещение. И еще нужно повернуть систему координат на угол.
Может это и сделать? Только поворачивать не систему координат, а модель?
Для переноса можно воспользоваться методом:
Autodesk.Revit.DB.ElementTransformUtils.MoveElements
Для поворота: Autodesk.Revit.DB.ElementTransformUtils.RotateElements

Название: Re: Пользовательская система координат
Отправлено: Алексей (IdeaSoft) от 21-09-2018, 23:07:41
Делаю  так:

Код - C# [Выбрать]
  1. var col = new FilteredElementCollector(doc);
  2. var FEC = new FilteredElementCollector(doc).OfClass(typeof(View));
  3. XYZ move = new XYZ(x,y, z);
  4. ICollection<ElementId> idColl = FEC.ToElementIds();
  5. ElementTransformUtils.MoveElements(doc, idColl, move);
                       
Не переносятся элементы вида. Может я что-то не так делаю?

Может нужно выбирать модель?  В проводнике проекта Revit есть элемент "Ф. 3D прозр."
Может нужно выбрать Элемент вида "{3D}"?
 
Название: Re: Пользовательская система координат
Отправлено: Александр Ривилис от 21-09-2018, 23:12:05
Не переносятся элементы вида. Может я что-то не так делаю?
Думаю, что тебе нужно переносить элементы модели, а не вида.
Название: Re: Пользовательская система координат
Отправлено: Алексей (IdeaSoft) от 21-09-2018, 23:14:22
Пока не пойму.
Наверное нужно вставить конструкцию транзакции

Код - C# [Выбрать]
  1.                 using (RVT_DB.Transaction tr = new RVT_DB.Transaction(doc))
  2.                 {
  3.                     tr.Start();
  4.                  ...
  5.                     tr.Commit();
  6.                 }
Название: Re: Пользовательская система координат
Отправлено: Александр Ривилис от 21-09-2018, 23:18:21
Наверное нужно вставить конструкцию транзакции
Это 100%. И посмотри статью о выборе всех элементов в модели: http://thebuildingcoder.typepad.com/blog/2017/01/dynamic-scripts-model-elements-and-vertical-alignment.html#3
Название: Re: Пользовательская система координат
Отправлено: Алексей (IdeaSoft) от 21-09-2018, 23:21:24
Спасибо за ссылку. Попробую.