在上一講中,我們實(shí)現(xiàn)了自動(dòng)載入族,并介紹了基于標(biāo)高創(chuàng)建族實(shí)例的方法。這一講,我們將利用 WPF 創(chuàng)建簡(jiǎn)單的界面,通過(guò)點(diǎn)擊按鈕選擇元素,在控件里顯示元素的信息。
什么是WPF
WPF (WindowsPresentation Foundation,Windows 演示基礎(chǔ))是一個(gè)用于 Windows 圖形顯示的系統(tǒng),是針對(duì) .net 設(shè)計(jì)的,提供了統(tǒng)一的編程模型、語(yǔ)言和框架,真正做到了分離界面設(shè)計(jì)人員與開(kāi)發(fā)人員的工作,同時(shí)相較于 Winform 提供了全新的多媒體交互用戶圖形界面。
有Winform,為啥用WPF
WPF 相較于 Winform 顯著的特點(diǎn)就是可以用 XAML 語(yǔ)言進(jìn)行設(shè)計(jì)界面的工作,程序人員與美工人員明確分工,美工人員可以使用 Expression Studio 中套裝工具可視化的設(shè)計(jì)界面。然后交給程序開(kāi)發(fā)組中的 XAML 就可以。讓程序人員直接套用到開(kāi)發(fā)環(huán)境,不需要想頁(yè)面怎么切了。
WPF 最重要的特色,是對(duì)矢量圖的超強(qiáng)支持 。兼容支持 2D 繪圖,比如矩形、自定義路徑,位圖等。文字顯示的增強(qiáng),XPS 和消鋸齒。三維強(qiáng)大的支持。包括 3D 控件及事件,與 2D 及視頻合并打造更立 體效果。漸變、使用高精確的(ARGB)顏色,支持浮點(diǎn)類(lèi)型的像素坐標(biāo)。這些對(duì) GDI+ 遠(yuǎn)遠(yuǎn)不及的。
靈活、易擴(kuò)展的動(dòng)畫(huà)機(jī)制!.Net Framework 3.0 類(lèi)庫(kù)提供了強(qiáng)大的基類(lèi),只需繼承就可以實(shí)現(xiàn)自定義程序使用繪制。接口設(shè)計(jì)非常直觀,完全面向?qū)ο蟮膶?duì)象模型。使用對(duì)象描述語(yǔ)言 XAML。使用開(kāi)發(fā)工具的可視化編輯。
您可以使用任何一種 .Net 編程語(yǔ)言(C#,VB NET等開(kāi)發(fā)語(yǔ)言)進(jìn)行開(kāi)發(fā)。XAML 主要針對(duì)界面的可視化控件描述,成生進(jìn)會(huì)分析成 .cs 或 .vb 文件,并最后將編譯為 CLR 中間運(yùn)行語(yǔ)言。
利用WPF進(jìn)行Revit二次開(kāi)發(fā)的注意事項(xiàng)
當(dāng)你新建 WPF 項(xiàng)之后,需要修改兩處,將 UserControl1 改為 Window,修改位置如圖:
第一處
第二處
下面將創(chuàng)建簡(jiǎn)單的 WPF 界面,添加一個(gè) Label 控件,一個(gè) Textbox 控件和一個(gè) Button 控件,位置及控件信息如圖:
這時(shí),底部會(huì)出現(xiàn)如下 XAML 代碼
當(dāng)然也可以通過(guò)編寫(xiě) XAML 代碼,實(shí)現(xiàn)對(duì)控件的添加修改。
我們要通過(guò) WPF 實(shí)現(xiàn)什么功能呢
很簡(jiǎn)單,點(diǎn)擊選擇元素按鈕,在 Revit 中選擇一個(gè)元素,Textbox 中將顯示元素的名稱(chēng),很基礎(chǔ)但是很有趣的一個(gè)實(shí)現(xiàn) Revit 與 WPF 界面交互的小案例。
別急,這就呈上代碼
UserControl1.xaml.CS 類(lèi)中的代碼
Class1 類(lèi)中添加的代碼
運(yùn)行結(jié)果:
運(yùn)行程序,Revit 文檔如下圖
出現(xiàn) WPF 制作的界面
單擊選擇元素按鈕,選擇 Revit 中樹(shù),樹(shù)的名字將顯示在 Textbox 控件中。如圖:
這時(shí)簡(jiǎn)單的利用 WPF 進(jìn)行 Revit 二次開(kāi)發(fā)的小案例就完成了。
族實(shí)例是通過(guò)族類(lèi)型創(chuàng)建的,而創(chuàng)建族實(shí)例是Revit二次開(kāi)發(fā)尤其重要的,因此小伙伴們要熟練掌握族實(shí)例的創(chuàng)建方法。族實(shí)例重要的方法1 FamilyInstance.Host此方法獲取族實(shí)例的宿主;2 FamilyInstance.rotate()此方法來(lái)旋轉(zhuǎn)族實(shí)例;
在Revit中修改管道附件中部分構(gòu)件的顯示情況。在Revit建模過(guò)程中,需要在模型中放置設(shè)備,例如風(fēng)機(jī),可以分為吊裝式和落地式的,兩者的區(qū)別在在于有無(wú)底座,這時(shí)就可以通過(guò)控制族中部分構(gòu)件的顯示情況來(lái)滿足要求。
微信咨詢(xún)