revit二次開發小技巧
阿新 • • 發佈:2019-01-26
//獲取當前檢視的標高 ,操作時只能在平面檢視,不然會報錯,因為在三維檢視無法獲取標高。
Level level = document.ActiveView.GenLevel;
//通過某構件獲取標高(如放置門時獲取牆體標高)
Level level = document.GetElement(wall.LevelId) as Level;
//可以通過Document獲取UIdocument.
UIDocument uidoc = new UIDocument(document);
//過濾所有軸網
List<Grid> allgrids = new FilteredElementCollector(doc).OfClass(typeof(Grid)).Cast<Grid>().ToList();
//樓板與管道過濾選擇
public class FloorPipeFileter : ISelectionFilter { public bool AllowElement(Element elem) { if (elem.Category.Name == "樓板" || elem.Category.Name == "管道") { return true; } return false; } public bool AllowReference(Reference reference, XYZ position) { return false; } }
//IList<T>轉
List<T>();
可以先利用IList<T> iList=
new
List<T>();然後用iList去承接承接生成的集合。
//try catch用法
public class Document_Selection : IExternalCommand { public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { try { } catch (Exception e) { //message = e.Message; //MessageBox.Show(ex.Message); return Autodesk.Revit.UI.Result.Failed; } return Autodesk.Revit.UI.Result.Succeeded; } }
//獲取一個面的法向向量
XYZ normal = planarFace.ComputeNormal(new UV(planarFace.Origin.X, planarFace.Origin.Y));
Curve.CreateOffset Method 依據一個曲線偏移後生成另一個曲線。 用其他 方法得到Curve1後,偏移後的 Curve2=Curve1.CreateOffset (double型別偏移距離,XYZ normal); XYZ normal可以用下面的表示: new XYZ(0,0,1)表示右或外方偏移,new XYZ(0,0,-1) 表示向左或內偏移,如下圖所示: |
未完,待完善。。。