Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: Павел Тер-Микаэлян от 17-07-2018, 13:30:08
-
Добрый день, подскажите пожалуйста, есть два документа, в них два одинаковых 3D семейства, в одном документе семейство вставлено и имеет свои Transform и LocationPoint, задача вставить в другом документе это семейство по аналогии, т.е., чтобы оно имело те же LocationPoint и Transform. Тип размещения семейств FamilyPlacementType.OneLevelBased. Вставляю методом NewFamilyInstance, но он принимает только XYZ в качестве координаты. Методом LocationPoint.Rotate я поворачиваю экземпляр на нужный угол, а как задать Transform? Метод ElementTransformUtils.CopyElements из одного документа в другой не подходит, т.к. при малейших различиях в семействах, во вставляемом проекте создается новое семейство с новыми типоразмерами с припиской "2". Можно конечно вычислить на какой угол, сколько раз и относительно какой линии нужно повернуть семейство, чтобы Transform совпали, но кажется, должен быть другой способ. Смотрел свойство GeometryInstance.Transform, но оно только для чтения, объект FamilyInstance.GetTransform() не влияет никак на модель, свойства SetTransform нету.
-
Вам нужно использовать методы из вспомогательного класса ElementTransformUtils (http://www.revitapidocs.com/2018.1/781ad017-5ee5-f44b-5db2-e8e1f883ae5d.htm), чтобы трансформировать семейство в нужное состояние
-
Вам нужно использовать методы из вспомогательного класса ElementTransformUtils, чтобы трансформировать семейство в нужное состояние
Просто я пытаюсь понять, а какой метод ElementTransformUtils использовать? CopyElement скопирует элемент и предыдущий мне придется удалять, т.к. таких действий нужно делать много, то это сильно затормозит процесс, хотелось бы сразу задать Transform для вставленного экземпляра. Для RotateElement нужно вычислять углы и вектора для поворота, и в этом собственно и вопрос, можно ли задать Transform у одного элемента, как у другого, не вычисляя их различия, без вспомогательного копирования и последующего удаления?
-
можно ли задать Transform у одного элемента, как у другого, не вычисляя их различия, без вспомогательного копирования и последующего удаления?
Нет
-
Понятно, спасибо за ответ)