一.什麼是schema
二.schema架構
建立revit擴充套件資料第一步是建立schema(類似建立架構設計,設計schema儲存結構,類似設計db 資料表結構),第二步是將擴充套件資料放入entity,最終儲存的位置在element。
三.**
schemamaager
publicview codeclass
schemamanager
}protected
schemamanager()
public schema createschema(guid id,string name,string
documentation,accesslevel readaccesslevel,accesslevel writeaccesslevel,
string fieldnames,string vendorid = "
adsk")
return
schemabuilder.finish();
}public
schema getschema(guid id)
public
void setentity(element element,guid schemaid,string
fieldname,t data)
public
void setentity(element element, guid schemaid, string fieldname, string
data)
}
schemacreater
publicview codeclass
schemacreater);}
}
測試**:
//view code擴充套件資料測試
[autodesk.revit.attributes.transaction(autodesk.revit.attributes.transactionmode.manual)]
[autodesk.revit.attributes.regeneration(autodesk.revit.attributes.regenerationoption.manual)]
public
class
schemadatatest : iexternalcommand
return
result.succeeded;
}else
return
result.failed;}}
**架構:
三.注意
1.建立schema不需要開啟事務
2.當writeaccesslevel或readaccesslevel為vendor的時候,vendorid必須與addin檔案中的vendorid保持一致,否則會沒有寫(讀)擴充套件資料的許可權,並丟擲異常;
3.乙個entity可以有多個schema,乙個schema可以有多個 field 。
如果有乙個實體類需要存為擴充套件資料,方法一:建立乙個field,將實體類json序列化,儲存字串。 方法二:建立多個field,乙個field對應實體類的屬性字段。 方法三:建立多個schema,乙個schema建乙個field,乙個field對應實體類的屬性字段。
初識revit二開
把對應的dll和addin拷貝到c programdata autodesk revit addins 2017即可。2.以類庫形式編寫程式 c windows 類庫 新增兩個引用revitapi.dll和revitapiui.dll,在revit安裝路徑下 以下是我電腦中位置 e revit201...
Revit二開 剪下專題之二
revit二次開發課程 在revit的開發過程中用到的剪下有很多種,例如,牆和梁的剪下,洞口和牆的剪下,空心族的剪下等等,每種剪下採用的方法並不一樣。本例詳解空心剪下 instancevoidcututils remark utilities for cutting elements by unat...
Revit二開 剪下專題之三
revit二次開發課程 在revit的開發過程中用到的剪下有很多種,例如,牆和梁的剪下,洞口和牆的剪下,空心族的剪下等等,每種剪下採用的方法並不一樣。在此做簡要舉例說明。實體剪下 solidsolidcututils.應用範圍有限,所以使用時要認清目標物件是否符合這些條件。public static...