Revit二開 Schemachema擴充套件資料

2022-02-09 05:18:46 字數 2252 閱讀 7600

一.什麼是schema

二.schema架構

建立revit擴充套件資料第一步是建立schema(類似建立架構設計,設計schema儲存結構,類似設計db 資料表結構),第二步是將擴充套件資料放入entity,最終儲存的位置在element。

.**

schemamaager

public

class

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)

}

view code

schemacreater

public

class

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;}}

view code

**架構:

三.注意

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...