Подключение библиотек Dynamo
Главная › Форумы › Python › Dynamo Libraries › Подключение библиотек Dynamo
- В этой теме 13 ответов, 4 участника, последнее обновление 8 лет, 5 месяцев назад сделано Khasan Mamaev.
-
АвторСообщения
-
Библиотека ProtoGeometry является возможно главнейшей среди всех прочих библиотек. Она позволяет работать с точками, линиями, плоскостями из кода питона. При создании нового нода Питона библиотека ProtoGeometry уже автоматически вписана, что позволяет обращаться к методам и функциям дизайн скрипта, которые работают с геометрией.
Еще одной важной библиотекой является Revit Elements.
Еще одной не менее важной является библиотека Core
Код, подгружающий библиотеку ProtoGeometry:
Код, подгружающий Revit Elements:
Как подгружать библиотеку Core:
1) Если вы подключаете RevitAPI, то она должна быть указаны в списке выше ProtoGeometry и RevitNodes
т.е. вот так:clr.AddReference(“RevitAPI”)
clr.AddReference(“RevitNodes”)
clr.AddReference(‘ProtoGeometry’)
если RevitAPI будет указана в списке ниже RevitNodes или ProtoGeometry, то последние работать не будут.
не играет никакой роли, где находятся и в каком порядке идут библиотеки RevitServices, ProtoGeometry и RevitNodes
2) RevitAPI.dll находится по адресу: C:\Program Files\Autodesk\Revit 2015 и весит ~ 40 Мб
поэтому крайне рекомендуется загружать из нее только то, что необходимо в данном скрипте, например вот так:
clr.AddReference(“RevitAPI”)
import Autodesk
from Autodesk.Revit.DB import *или даже более конкретно:
clr.AddReference(“RevitAPI”)
import Autodesk
from Autodesk.Revit.DB import ElementTransformUtils, ElementIdоткуда позже вызывается лишь одна команда MoveElements
ElementTransformUtils.MoveElements(doc,ids,vector) #естественно в транзакцииУдачи.
в продолжении темы “Вывод типа данных”
появилось два вопроса
import clr
OUT=IN[0].GetType().Name1) что означает clr ? (библиотека или что?) где лежит, как открыть?
накопал что-то вроде clr.dll в папке C:\Windows\Microsoft.NET\Framework\v4.0.30319, но “не открывается” с помощью dot Peek
и есть вот такое определение (не уверен, что по теме) CLR — это sort of virtual machine
2) если есть команда GetType(), как посмотреть все остальные возможные в этом системном clr?
для библиотек типа RevitNode это можно сделать если открыть ее с помощью dot Peek и поковыряться в “дереве проводника” (я рассказывал на видео выше)Что же такое CLR?
CLR расшифровывается как “Common Language Runtime” (межъязыковый рантайм). Чтобы понять, зачем он нужен, необходимо предварительно проанализировать текущее состояние дел в COM и Java- технологиях.
Для начала приведем определение из материала «Microsoft .Net Common Language Runtime Architecture”, базовой спецификации, поставляемой Microsoft.
«…Common Language Runtime управляет исполнением исходного кода после его компиляции в Microsoft Intermediate Language(MSIL), OptIL или машинные коды. Весь код на MSIL или OptIL исполняется как управляемый код (managed code); этот код исполняется в сотрудничестве с .Net Framework. .Net Framework обеспечивает управление памятью, кросс- языковую интеграцию, обработку исключений, защиту кода и автоматическое управление сроком жизни объектов. В свою очередь, управляемый код должен предоставить в метаданных информацию, достаточную, чтобы позволить .Net Framework управлять исполнением кода.
Ключевым свойством CLR является возможность обеспечения программной изоляции приложений, исполняемых в общем адресном пространстве. Это осуществляется с помощью типо-безопасного доступа ко всем областям памяти при исполнении типо-безопасного управляемого кода. Некоторые компиляторы могут создавать MSIL-код, который не только типо-безопасен, но и поддается простой проверке на безопасность исполнения. Этот процесс называется верификацией и позволяет серверам просто проверять написанные на MSIL пользовательские программы, и запускать только те, которые не будут производить небезопасных обращений к памяти. Такая независимая верификация важна для действительно масштабируемых серверов, исполняющих пользовательские программы и скрипты.»
andersonУчастникДоброго времени суток! А не подскажите методы подключения сторонних библиотек? Например чтобы подключится к Autocad API.
Можно посмотреть мой ролик https://youtube.com/watch?v=oiz76GTN-8Y
andersonУчастникУвидел на форуме ветку с обсуждением этого вопроса. Спасибо!
Андрей, если не коммерческая тайна, то может расскажешь какие задачи пытаешься решить в Автокаде с помощью Динамо?
andersonУчастникТут пока не задачи, тут идеи. Хотелось бы попробывать выудить информацию из файлов в AutoCAD и передать её в Revit. К реализации задумок пока не преступал, времени особо нет, но хочется попробывать.
Можно воспользоваться форматом dxf https://m.youtube.com/watch?v=VQUVx1xTb6g
andersonУчастникБлагодарю за ссылку!
Если с информацией из Автокад не планируются манипуляции в Динамо, то файлы Автокад можно сразу импортировать средствами Ревит.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.