许多朋友原来用C++开发AutoCAD,或对C++很熟悉,但是没有发现Revit SDK 提供C++的例子工程,因此很想了解是否可以用C++来开发Revit。 特写此文来回答大家的疑问。
Revit提供的应用程序开发接口(API)是.NET 类型的,只要支持.NET Framework 的语言都是可以的。 显然C#, VB.NET 是支持的,托管C++ 是支持.NET framework, 所以也是可以用来开发Revit。
在Revit API的帮助文档中,对每一个接口方法或属性,都会列出托管C++的签名。如下所示: - [csharp] view plaincopy
- Syntax
- C#
- public static ViewSchedule CreateKeySchedule(
- Document document,
- ElementId categoryId
- )
-
- Visual Basic
- Public Shared Function CreateKeySchedule ( _
- document As Document, _
- categoryId As ElementId _
- ) As ViewSchedule
复制代码- [csharp] view plaincopy
- Visual C++
-
- public:
- static ViewSchedule^ CreateKeySchedule(
- Document^ document,
- ElementId^ categoryId
- )
-
复制代码 一个托管C++开发的代码片段:
下面是头文件中的Revit命令类的声明- [cpp] view plaincopy
- //
- public ref class Command : public Revit::IExternalCommand {
- public:
- virtual Revit::IExternalCommand::Result Execute(Revit::ExternalCommandData^ commandData, String^% message, Revit::ElementSet^ elementSet);
- };
复制代码 下面是该类实现代码- [cpp] view plaincopy
- #include "stdafx.h"
-
- #include "DistribApp2.h"
-
- Revit::IExternalCommand::Result DistribApp2::Command::Execute(Revit::ExternalCommandData^ commandData, String^% message, Revit::ElementSet^ elementSet) {
-
- // 栠傝抣
- Revit::IExternalCommand::Result retCommand = Revit::IExternalCommand::Result::Succeeded;
-
- // CompA
- DistribApp2::CompA^ objCompA = gcnew DistribApp2::CompA();
- objCompA->ShowMsg();
-
-
- return retCommand;
- }
复制代码 但是纯C++的模式没有,也就是没有提供头文件(*.h)和库文件(*.lib) 这种方式来开发Revit。
所以看看托管C++ 的一些资料后,就可以继续利用你的C++语言的长处来开发Revit。不同语言所具有的Revit二次开发能力是一样的,没有区别。
C#是一种用起来非常方便的语言,掌握C++的程序员很快可以掌握。转载请复制以下信息:
原文链接: http://blog.csdn.net/joexiongjin/article/details/7946047作者: 叶雄进 , Autodesk ADN
|