此分類記錄本身的Revit學習之路。初學者不免一葉障目,不見泰山,歡迎一塊兒交流學習!app
Revit專爲建築信息模型(BIM)構建的一款建模軟件。隨着BIM概念在國內的興起,各大設計院對Revit建模的需求增多,相關的基於Revit的二次開發也逐漸增多。具體介紹不在搬運。學習
Revit是專爲BIM構建的軟件,瞭解Revit必須先了解BIM。BIM的概念不單單是二維圖紙到三維模型的變化,BIM是一個信息管理和交互的平臺。Revit既然做爲專爲BIM構建的軟件,那麼他就必須可以管理模型和信息。spa
參考:https://zhuanlan.zhihu.com/p/20164680?columnSlug=BIMinfo插件
Revit做爲一個平臺類的軟件,那麼必須有平臺的功能:一、可自定義的菜單二、加載外部插件三、提供外部插件調用的藉口。設計
Revit 二次開發建立自定義外部選項卡時 須要引用Revit·外部應用接口,而後在Revit啓動的時候(OnStartup)建立 Tab,Panel,Button。因爲二次開發菜單常常變更,總去調程序十分麻煩。因此應該將菜單定義到一個配置文件中,Revit啓動的時候去讀取菜單配置。這部分博主剛作過,後續會詳細介紹。xml
Revit經過AddIn文件本質是Xml文件)來加載外部插件。文件格式以下:繼承
<?xml version="1.0" encoding="utf-8"?>接口
<RevitAddIns>utf-8
<!—調用外部插件的類型[Command]和[Application]-->element
<AddIn Type="Command">
<!—程序集用於反射調用插件-->
<Assembly>D:\HelloWorld\bin\Debug\HelloWorld.dll</Assembly>
<!—惟一標示-->
<AddInId>4d8936ea-82ca-49b0-abc0-d0904d8bd716</AddInId>
<FullClassName>HelloWorld.Class1</FullClassName>
<!—顯示的名稱-->
<Text>HelloWorld</Text>
<!—開發商信息-->
<VendorId>ABC</VentorId>
</AddIn>
</RevitAddIns>
一、 添加RevitAPI.dll和RevitUI.dll到項目的參考引用中。它們能夠Revit的安裝目錄下或者SDK包中找到。二、繼承IExternalCommand接口並實現接口的Execute()方法。
代碼示例:
//1、命令調用
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
namespace HelloWorld
{
[Transaction(TransactionMode.Manual)]
public class HelloWorld : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
{
TaskDialog.Show("Title", "Hello World");
return Result.Succeeded;
}
}
}
//2、外部應用程序
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
namespace App
{
[Transaction(TransactionMode.Manual)]
public class App : IExternalApplication
{
public Result OnShutdown(UIControlledApplication application)
{
TaskDialog.Show("結束", "結束");
return Result.Succeeded;
}
public Result OnStartup(UIControlledApplication application)
{
TaskDialog.Show("開始", "開始");
return Result.Succeeded;
}
}
}
正式學習Revit開發的第一天,千里之行始於足下!