2014-01-16 1 views
1

Я сделал тупую вещь. Я все взволновался Revit 2014, разрешив макросы в Ruby, установил RevitRubyShell и написал, что станет надстройкой.Как создать Revit Add-In DLL от Python

Незначительная проблема - нет DLL-компилятора для IronRuby. D'о!

Итак, я собираюсь преобразовать свой код в Python (и использовать отличный RevitPythonShell), который я использовал для работы Revit API до появления Revit 2014 Ruby.

Мой вопрос: после того, как я преобразовал свой код Ruby в Python, (как) я могу создать DLL надстройки Revit? Я знаю, что вы можете скомпилировать Python в .NET DLL, но каждый пример надстроек Revit, похоже, находится на C#. Я хочу оставаться в интерпретируемой среде, потому что очень быстро развиваться в Revit таким образом. Но нет смысла делать все мои dev на Python (или Ruby), если мне нужно преобразовать все в C#, чтобы сделать надстройку, которая соответствует интерфейсу IExternalApplication.

Кто-нибудь сделал надстройку Revit в Python?

Спасибо!

Andy

+0

Каковы ваши причины для желания скомпилировать проект? Скрыть источник? Или простое развертывание? –

+0

Простота развертывания, больше всего на свете. Я собираюсь открыть исходный код. И я в конечном итоге выяснил, как установить код Ruby в макромодели Revit при запуске, поэтому сейчас я перехожу к созданию DLL надстройки. – RealHandy

+1

Этот вопрос (я OP) имеет более 1000 просмотров, поэтому, поскольку это было уделено этому много внимания, я скажу это, что может представлять интерес для будущих читателей: я преобразовал все свои дополнения Revit -ins на C# и Visual Studio Express. Я обнаружил, что это просто упрощенная среда для создания и отладки надстроек Revit. – RealHandy

ответ

1

Заканчивать этот блог: Deploying RPS scripts with DeployRpsAddin.

В этой статье описывается функциональность RevitPythonShell, которая позволяет создавать распределяемую версию сценариев RevitPythonShell (RPS) - кучу сценариев для отправки.

Главным образом это делается путем предоставления DLL-оболочки, написанной на C#, которая хранит ваши сценарии и файл конфигурации в качестве ресурсов и выполняет их с помощью IronPython во время выполнения. Это по-прежнему означает, что ваш код python не скомпилирован для IL, но вы можете связать его для установки на отдельный компьютер. Посмотрите на DesignPerformanceViewer на подробный пример такого AddIn.

+0

Daren, спасибо - так как это был не вопрос RPS, я не хотел спрашивать вас напрямую, и я ценю ваш обычный быстрый ответ даже после моего «неважно». – RealHandy

0

Ничего. После большего поиска, нашел этот ответ stackoverflow, который указывает, что DLL IronPython НЕ переносимы/не могут быть вызваны ничем, кроме IronPython, так что это исключает надстройки Revit.

Build .NET DLLs from Python code? (ответ, по этой ссылке, "Нет")

 Смежные вопросы

  • Нет связанных вопросов^_^