首先通過RevitLooup工具,我們可以看到雲線的類是RevisionCloud,那麼創建雲線的方法不是在Document.Create裏面尋找,就是在自己的靜態方法裏面尋找。
果然,被我們發現有一個靜態的Create函數,如下:
public static RevisionCloud Create(Document document, View view, ElementId revisionId, IList<Curve> curves)
大多數參數我們應該能夠猜出來它們是幹什麼的,唯一一個參數就是revisionId,這個從哪裏來呢?
首先,我試了一下傳入ElementId.InvalidElementId,發現拋出異常:
Autodesk.Revit.Exceptions.ArgumentException: revisionId is not a valid Revision. Parameter name: revisionId
所以這裏必然是傳入真實的Id。
此時我發現,RevisionCloud是有一個屬性叫RevisionId的,於是查看了一下這個Id代表的是什麼,那就是Revision。
再看Revision也有一個Create的靜態方法,於是解決方案就明瞭了,也很簡單:
var revision = Revision.Create(RevitDoc);
var revisionCloud = RevisionCloud.Create(RevitDoc,
RevitDoc.ActiveView, ElementId.InvalidElementId,
new List<Curve>() {
Line.CreateBound(XYZ.Zero, new XYZ(10,0,0))
});