1. 程式人生 > >Building Coder(Revit 二次開發)

Building Coder(Revit 二次開發)

原文連結:Family Symbols versus Types and SelectionFilterElement

問題
如果我在一個族文件(RFA)中訪問 OwnFamily.Symbols,返回的是空集合。如果我將這個族載入到專案文件中,然後訪問 Family.Symbols 屬性,返回的就是正確的族型別。為什麼這個屬性在族文件中無效呢?

Jeremy
在族文件環境裡,應該使用 FamilyManager 物件,你可以使用 Document.FamilyManager 屬性得到它。族本身並不包含族符號,它只包含族型別。我們可以將一個族型別看成是資料庫中的一條表記錄,或者稱之為行。族引數對應的是表的欄位,或者稱之為列。族引數和資料庫表字段還有很多相似的地方。

族符號並不存在於族文件中。只有當族被載入到另外一個族或者載入到專案中時才會有族符號。你有時候會在一個族文件中發現有效的族符號,不過它們是屬於載入到當前族文件的另外一個族的。

簡單地說,族型別和族符號是兩種的物件,並且用於不同的目的。
  • 族型別可以新增族引數、族公式。但是族符號是隻讀的,它只能使用在源族中設定的定義。
  • 族型別在執行時可以新增或者刪除,而族符號不行。不過族符號可以做一些特殊操作,比方說複製。
  • 族符號可以在它寄宿的文件中被例項化,而族型別不行。

族型別類(FamilyType)並不是派生於元素類(Element),所以族型別並不是元素。我們只有通過 FamilyManager 來訪問它的引數。

在族文件中的可以對族型別進行一些特殊操作,例如獲取族型別的圖片。你可以先將指定的族型別設定為族文件的當前型別(通過設定 FamilyManager.CurrentType),然後使用 Document.Export() 方法匯出族文件指定檢視的圖片。注意匯出時使用合適的 ImageExportOptions 引數。

小貼士


SelectionElementFilter 是一個過濾器元素,儲存了一個 ElementId 的集合。只有 ElementId 在這個集合中的元素才能通過該過濾器。

相關推薦

Building CoderRevit 開發

原文連結: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、在引