转载请复制以下信息:
原文链接: http://blog.csdn.net/joexiongjin/article/details/8099842
作者: 叶雄进 , Autodesk ADN
看到评论中 有这样一个问题。
请教一个问题:在往图纸中添加视图时,选择了视图要在图纸中选择一个位置来放置视图,如何用API实现选择位置放置的操作?
答:
这个问题说到Revit中如何进行交互选择编程。Revit把所有的交互选择的操作全部封装在Selection类中。
Selection类提供了选择点,选择线,选择面,选择对象,窗口选择,多重选择等等操作。
请看下面的列表:
PickBox(PickBoxStyle) //窗口选的效果,返回所选择的范围,不返回所选的对象集合
PickBox(PickBoxStyle, String) //窗口选,可输入状态栏提醒字符串,返回返回所选择的范围
PickElementsByRectangle()()()() //窗口选,返回选中对象集合
PickElementsByRectangle(String) //窗口选,返回选中对象集合
PickElementsByRectangle(ISelectionFilter) //窗口选,指定一个选择过滤器,返回选中对象集合
PickElementsByRectangle(ISelectionFilter, String) // 窗口选,指定一个选择过滤器,返回选中对象集合, 提示字符串
PickObject(ObjectType) //单选一个实体上的点,棱边,面,对象
PickObject(ObjectType, ISelectionFilter) //单选一个实体上的点,棱边,面,对象,带过滤器,只有符合过滤器的才能在选择中被高亮,且被选中。
PickObject(ObjectType, String)
PickObject(ObjectType, ISelectionFilter, String)
PickObjects(ObjectType) //多选,可以组合多中选择方式。
PickObjects(ObjectType, ISelectionFilter)
PickObjects(ObjectType, String)
PickObjects(ObjectType, ISelectionFilter, String)
PickObjects(ObjectType, ISelectionFilter, String, IList<(Of <<'(Reference>)>>))
PickPoint()()()() //选择一个点
PickPoint(String) //选择一个点
PickPoint(ObjectSnapTypes) //选择一个点,指定捕捉类型。
PickPoint(ObjectSnapTypes, String)
所以确定在图纸中的视图位置,你可以调用Selection.PickPoint() 来让用户交互选择在哪儿插入视图。