//获取当前视图的标高 ,操作时只能在平面视图,不然会报错,因为在三维视图无法获取标高。
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) 表示向左或内偏移,如下图所示: |
未完,待完善。。。