序言:
revit介紹
revit專為建築資訊模型(bim)構建的一款建模軟體。隨著bim概念在國內的興起,各大設計院對revit建模的需求增多,相關的基於revit的二次開發也逐漸增多。具體介紹不在搬運。
revit是專為bim構建的軟體,了解revit必須先了解bim。bim的概念不僅僅是二維圖紙到三維模型的變化,bim是乙個資訊管理和互動的平台。revit既然作為專為bim構建的軟體,那麼他就必須能夠管理模型和資訊。
參考:revit作為乙個平台類的軟體,那麼必須有平台的功能:1、可自定義的選單2、載入外部外掛程式3、提供外部外掛程式呼叫的藉口。
revit選單
revit 二次開發建立自定義外部選項卡時 需要引用revit·外部應用介面,然後在revit啟動的時候(onstartup)建立 tab,panel,button。由於二次開發選單經常變動,總去調程式十分麻煩。所以應該將選單定義到乙個配置檔案中,revit啟動的時候去讀取選單配置。這部分博主剛做過,後續會詳細介紹。
註冊外掛程式
revit通過addin檔案本質是xml檔案)來載入外部外掛程式。檔案格式如下:
<?xml version="1.0" encoding="utf-8"?>
d:\helloworld\bin\debug\helloworld.dll
4d8936ea-82ca-49b0-abc0-d0904d8bd716
helloworld.class1
helloworld
abc外掛程式呼叫
1、 新增revitapi.dll和revitui.dll到專案的參考引用中。它們可以revit的安裝目錄下或者sdk包中找到。2、繼承iexternalcommand介面並實現介面的execute()方法。
**示例:
//一、命令呼叫
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;
//二、外部應用程式
using autodesk.revit.db;
using autodesk.revit.ui;
using autodesk.revit.attributes;
[transaction(transactionmode.manual)]
taskdialog.show("結束", "結束");
return result.succeeded;
taskdialog.show("開始", "開始");
return result.succeeded;
結語正式學習revit開發的第一天,千里之行始於足下!
Revit學習之路02 Revit基礎選單定義
序言 前一章對revit載入外部外掛程式進行了簡單的說明,本章詳細說明revit自定義選單的設計與實現。revit選單機制 revit的選單配置結構為tab panel button如上圖所示 選單的最頂級為選項卡 tab 每個選項卡下包含很多面板 panel 無論是tab還是panel都只是乙個容...
Golang學習之路 01
1 在go的結構體中,如果成員屬性小寫開頭代表這個成員是私有的,如果是大寫開頭代表是公開的。因此在定義一些json資料的結構體時,需要將成員屬性均改為大寫,否則無法解析 2 beego建立乙個純api專案,通過bee api 為專案名 建立以後我們需要進入專案目錄直接執行bee run gendoc...
python 學習之路 01
1.三元表示式 a 3b 5d a if a b else b print d 如果條件為真,取a 如果條件為假,取b 2 bytes string轉換 由於py3對於編碼的轉換。預設為string型別。因此轉為bytes為編碼形式既encode.3.列表切片 顧頭不顧尾 例 name 小李 小張 ...