Building Coder(Revit 二次開發)
問題
如果我在一個族文件(RFA)中訪問 OwnFamily.Symbols,返回的是空集合。如果我將這個族載入到專案文件中,然後訪問 Family.Symbols 屬性,返回的就是正確的族型別。為什麼這個屬性在族文件中無效呢?
Jeremy
在族文件環境裡,應該使用 FamilyManager 物件,你可以使用 Document.FamilyManager 屬性得到它。族本身並不包含族符號,它只包含族型別。我們可以將一個族型別看成是資料庫中的一條表記錄,或者稱之為行。族引數對應的是表的欄位,或者稱之為列。族引數和資料庫表字段還有很多相似的地方。
族符號並不存在於族文件中。只有當族被載入到另外一個族或者載入到專案中時才會有族符號。你有時候會在一個族文件中發現有效的族符號,不過它們是屬於載入到當前族文件的另外一個族的。
簡單地說,族型別和族符號是兩種的物件,並且用於不同的目的。
- 族型別可以新增族引數、族公式。但是族符號是隻讀的,它只能使用在源族中設定的定義。
- 族型別在執行時可以新增或者刪除,而族符號不行。不過族符號可以做一些特殊操作,比方說複製。
- 族符號可以在它寄宿的文件中被例項化,而族型別不行。
族型別類(FamilyType)並不是派生於元素類(Element),所以族型別並不是元素。我們只有通過 FamilyManager 來訪問它的引數。
在族文件中的可以對族型別進行一些特殊操作,例如獲取族型別的圖片。你可以先將指定的族型別設定為族文件的當前型別(通過設定 FamilyManager.CurrentType),然後使用 Document.Export() 方法匯出族文件指定檢視的圖片。注意匯出時使用合適的 ImageExportOptions 引數。
小貼士
SelectionElementFilter 是一個過濾器元素,儲存了一個 ElementId 的集合。只有 ElementId 在這個集合中的元素才能通過該過濾器。
相關推薦
Building Coder(Revit 二次開發)
原文連結:Family Symbols versus Types and SelectionFilterElement問題 如果我在一個族文件(RFA)中訪問 OwnFamily.Symbols,返回的是空集合。如果我將這個族載入到專案文件中,然後訪問 Family.Sym
discuz!7.2升級discuzX3.2,流程文件(有二次開發)
由於官方給出的教程大多需要備份原來的資料庫以防升級失敗,風險較高,所以本教程不論升級成功與否,對原來的discuz資料庫是完全沒有影響的。 如果discuz與第三方站點有同步登陸等聯絡的,升級之前需要先將discuz與第三方站點解綁,保證discuz關閉後對與之關聯的第
Revit二次開發高階應用(二)——怎樣在Revit中使用多執行緒
在Revit中完全可以使用多執行緒,只是需要滿足一定的規則:不改變Revit的Document文件的工作都可以線上程中完成,改變Document文件的工作都需要在主執行緒中完成。 如下:不改變文件,只是在執行緒裡建立輔助的線,執行之後,絲毫不錯。 namespace RevitUseTh
Revit二次開發高階應用(1)——利用wcf做簡單的族庫管理
因為對應用場景不是特別明確,暫時就用wcf做一個可以上傳和下載的功能來管理族庫。 1、用WCF做服務端的上傳下載管理 首先新增上傳下載的介面: [ServiceContract] public interface IFileService { //上傳
Revit二次開發—賦值問題(單位轉化)
通過二次開發設定引數值,存在單位轉化問題 原因:Revit內部基本單位是英尺(foot),如果要獲取或設定構件引數數值需要進行單位轉換 1英尺 = 304.7999995367 mm = 304.8 mm 可以使用RevitAPI內建的轉換函式進行目標單
Revit二次開發—建立文字註釋(TextNote)
Revit API 在2016版本及以後對建立文字註釋做了改動 新版本建立方法: using (Transaction tran = new Transaction(RevitDoc, "Creating a Text note")) { XYZ origin =
Revit 二次開發—視覺化(AVF)
參考文件:https://download.csdn.net/download/weixin_40626630/10874075 http://autumnflavor.com/2016/07/04/Revit-API-Analysis-Visualisation-Framework/ ht
Revit二次開發—更改啟用檢視(activeview)失敗原因
錯誤提示: Cannot change the active view of a modifiable document (with a transaction curently open) 原因在於:檢視不能在事務進行時更改,因為事務的執行牽扯到檢視,檢視正在被利用,所以應該在事務提交之後
Revit二次開發之技能篇(四)———區域標高不一致縮圖的實現
使用Revit出圖時,往往會遇到專案地庫標高不一致,在標註機電管線時,需要按照地庫地面標高去標註,但地庫地面標高又無法統一,需要手動取框選區域形成標高縮圖註明標高。 本文簡單分享一下利用土建模型中的樓板實現縮圖的快速方法; 1、讀取地庫建築面層的所有輪廓,篩選出建築面層的範圍線,利用範圍線生
Revit二次開發之技能篇(三)———窗體的實現
在Revit中很多時候,都需要使用者輸入相關的資料,然後再進行程式的執行。在Revit中如何實現窗體呢?請看以下程式碼: ParkingForm frmDlg = new ParkingForm(); frmDlg.ShowDia
Revit二次開發之技能篇(二)———軸網尺寸標註
在利用revit出圖時,避免不了要對軸網進行標註,下面分享一下軸網尺寸標註的一些開發經驗: 軸網尺寸標註: 首先要獲取到尺寸標註的引用,將引用新增到引用集合中,關鍵程式碼如下: ReferenceArray array = new ReferenceArray(); array.
Revit二次開發之技能篇(一)———軸網自動對齊
在做專案的過程中,軸網都是進行翻模或者拾取,而翻模出來的軸網往往都是不堪入目的,為了滿足專案需要,做了軸網對齊的功能,廢話不多說,直接上乾貨。 首先做一些準備工作,先建立一個軸網過濾類,接下來會用到,程式碼如下: class GridSelectionFilter : ISelection
Revit二次開發(6):Ribbon編輯器(開源專案)
這是我再github上法相的一個開源專案。 github專案:https://github.com/PrestonII/2013RevitRibbon git地址:https://github.com/PrestonII/2013RevitRibbon.git 簡單
Revit二次開發從入門到精通學習之路, (含Revit二次開發教程下載)
Revit二次開發從入門到精通學習之路Revit在國內的應用越來越廣泛, Revit 2013在速度和功能上有顯著的提高,所以現在對Revit應用關注更多。Revit二次開發亦受到大量的關注和評估,許多
[Revit]Autodesk Revit 二次開發整理(資料、準備工作和環境搭建)
1 前言 Revit被Autodesk收購之後,整理和開放了一大部分API,供開發者實現自己的功能和程式,總體來說API的功能比較完善,畢竟市面上已經出現了各式各樣的外掛。 本人也是初學者,在Revit分類中分享一些自己記錄的筆記內容。 2 準備工作 工欲善其事,必先利其器。 2.1 語言 首先,定下你自己
Revit二次開發環境配置(Revit 2020 +Visual Studio 2019)
Revit二次開發環境搭建(Revit 2019+Visual Studio 2017)準備內容Revit 2019開發環境的搭建,需要安裝的內容如下:Revit 2019(主要的開發環境)Visual Studio 2019(用於程式碼的編寫)Revit SDK 2019AddinManager(用於管理二
JMeter後置處理器使用詳解(二次開發)
一、外掛下載地址: 百度網盤連結:https://pan.baidu.com/s/1WK7FVzq_PYYd2JEGX92rvQ 提取碼:shnw 二、使用條件 1.JMeter版本為3.3(在JMeter3.3的基礎上開發); 2.將jar包放置到目錄…\lib\ext下重啟J
ApolloStudio高手之路(4):用Python以最輕便的方式進行金橙子鐳射打標板卡二次開發(以EzCad2為載體二次開發)
鐳射打標是以高密度、高能量的鐳射束對各種材質媒介(塑料,布匹,金屬,陶瓷等等)進行表面區域性照射加工,使表層材料汽化或發生顏色變化的化學反應,從而留下永久性標記的一種清潔環保的表面加工方法。鐳射打標可以打出各種文字、符號和圖案等,字元大小可以從毫米到微米量級,這對產品的防偽有特殊的意義。正是因為
基於redis實現tomcat8的tomcat叢集的session持久化實現(tomcat-redis-session-manager二次開發)
前言:本專案是基於jcoleman的tomcat-redis-session-manager二次開發版本1、修改了小部分實現邏輯2、去除對juni.jar包的依賴3、去除無效程式碼和老版本tomcat操作API4、支援tomcat 8 ,更高版本未測試原始碼提供:下載目錄:注
Revit二次開發--Hello World
man dem users att try encoding cli 引用 類庫 部署完開發環境,就要進行每次學習新的技能,必寫的Hello World。 1、打開VS開發環境,新建一個項目類庫RevitDemo。 2、修改Class1名稱為Command。 3、在引