日期:2012.6.6
在進行revit二次開發過程中,呼叫document.loadfamily(string, family) ,返回的family物件為null. 原因是什麼?
我個人覺得返回null是因為已經在document物件中存在需要載入的物件了。那麼如何根據檔案路徑,從document中刪除這個族物件。
回答:revit 提供了5個過載函式loadfamily來載入族。他們用途各不相同。
1: loadfamily(string)
2: loadfamily(document)
3: loadfamily(string, family)
4: loadfamily(document, ifamilyloadoptions)
5: loadfamily(string, ifamilyloadoptions, family)
第乙個函式用於載入乙個族檔案(.***) 到模型中,指定族檔案的完整檔名(含目錄),返回family物件。 但是這個函式無法處理當前模型中已經有這個族的問題,如果族已經存在,無法載入。
第二個函式用於載入乙個在後台開啟或者仍在編輯中開啟的族到模型中。這個函式有點難理解,需要吧目標模型檔案作為引數放在,呼叫的document是族document,而不是模型document
第三個函式與第乙個函式差不多,只不過把返回值作為引數的形式傳出來。返回值是布林型。也無法載入已經存在的族。
第四個函式與第二個函式在功能上有類似之處,但是有些差別。 這個函式可以實現如果需要載入的族已經在當前模型檔案中,該如何處理。這個函式可以載入已經存在的族。 它的第二個引數是乙個介面。你需要新建乙個類從這個介面派生,然後實現其兩個函式:onfamilyfound 和onsharedfamilyfound。 前面的onfamilyfound的意思是當發現已經存在時,你該怎麼辦?
bool onfamilyfound(
bool familyinuse,
out bool overwriteparametervalues
)familyinuse引數會告訴你這個族是否已經有例項插入到模型中。true是說這個族已經使用了,false表明尚未插入到模型中。
overwriteparametervalues 引數是你要告訴revit是否覆蓋已有族的引數值。
第五個函式實現的是載入乙個儲存在盤中的族檔案到模型檔案中。他可以載入已經存在的族。ifamilyloadoptions 型別的引數用法與第四個一樣的。
請看下面示例,演示如何載入並覆蓋已經存在的族。
using system;
using system.collections.generic;
using system.text;
using system.windows.forms;
using autodesk.revit .db;
using autodesk.revit.ui;
using autodesk.revit.attributes ;
[transactionattribute(autodesk.revit.attributes.transactionmode.manual)]
public class revitcommand : iexternalcommand
} public class myfamilyloadoptions : ifamilyloadoptions
public bool onsharedfamilyfound(
family sharedfamily,
bool familyinuse,
ref familysource source,
ref bool overwriteparametervalues
)}
Revit外掛程式載入,addin檔案的設定
問題描述 revit二次開發使用addin載入時,出現如下錯誤。外部工具 不存在於附加模組對應的 商id節點 無法初始化附加模組 helloworld.addin 因為附加模組登錄檔中缺少所需的 商id節點值。可根據 商id節點識別附加模組應用程式的 商。如要revit執行附加模組,必須註冊清單 h...
2 載入配置檔案
載入pro.properties配置檔案 1.載入 讀取 配置檔案 建立properties物件 properties pro new properties 載入配置檔案,轉換為乙個集合 雙列map集合 1.獲取class 類 目錄下的配置檔案 即獲取檔案路徑 首先通過類的class屬性獲取位元組碼...
PE檔案載入過程揭秘(2)
2011年10月09日 星期日 16 23 自 cvvd 最終編輯 cvvd 圖1pe 載入器在完成檔案實體資料到記憶體虛擬資料的對映之後,便開始從位於 image option header 末端的image data directory 陣列的第 2項 如圖 2 取出輸入表的 rva和大小,準備...