Ренат Я.
Ответы в темах
-
АвторСообщения
-
получилось сделать такую последовательность
проверить можно так, выбрать какой либо элемент, выполнить скрипт.. и смотреть на значение параметра “Комментарии”. для того чтобоы узнать последовательность действий нужно нажимать кнопку шаг назад, для отмены последнего изменения, каждая транзакция создает шаг отката
видимо ревит как-то конвертирует входящий параметр, если несколько раз изменить, то можно вычислить зависимость
если входящее число из комментария умножить на 10,764262648008611410118406889128 то в параметре мощности будет ~ то число которое было в комментарии отличие на несколько сотых
PS понял, все дело в размерности.. Вт = кг*м2/с2 т.к. в БД Ревит все хранит в футах, то и этот параметр он конвертирует в футы, в 1 метре 3,28084 фута, т.е. если возвести в квадрат это число то и получим 10,7639111056 , примерно тоже что и получил эмпирическим путем) но сейчас с доказательной базой))
Столкнулся с еще одной проблемой: при размещении экземпляра семейства с помощью динамо (нод FamilyInstance.ByPoint) отсутствует привязка к уровню. А она очень нужна для работы скрипта.
Для этого надо просто глянуть чуть ниже нода FamilyInstance.ByPoint, там будет находиться нод FamilyInstance.ByPointAndLevel, который позволяет указать уровень на котором будет располагаться семейство
Revit 2017, Dynamo 1.3
тут библиотеки для разных случаев, стандартный наборimport clr #подключение библиотек ревита clr.AddReference(“RevitAPI”) clr.AddReference(“RevitAPIUI”) from Autodesk.Revit.DB import * # библиотека динамо для работы с ревитом clr.AddReference(“RevitServices”) import RevitServices #разворчиваем текущий проект в ревите from RevitServices.Persistence import DocumentManager #разворчиваем доступ к трнзакциям from RevitServices.Transactions import TransactionManager #загружаем динамовскую библиотеку нодов для работы с ревитом clr.AddReference(“RevitNodes”) import Revit #функция для заворачивания объектов clr.ImportExtensions(Revit.Elements) #превращение геометрии взаимное clr.ImportExtensions(Revit.GeometryConversion) #БД на текущий проект doc = DocumentManager.Instance.CurrentDBDocument #функции и свойство для работы с внешней оболочкой uiapp = DocumentManager.Instance.CurrentUIApplication #функции для работы с ревитом как с программой app = uiapp.Application TransactionManager.Instance.EnsureInTransaction(doc) pipeID=ElementId(IN[0]) ptBreak=IN[1].ToXyz() OUT=Plumbing.PlumbingUtils.BreakCurve(doc, pipeID, ptBreak) TransactionManager.Instance.TransactionTaskDone()
Сделал вот такой скриптик, возможно можно и проще)
сам скрипт , если нужен файл ревита
конструктивная критика приветствуется) -
АвторСообщения