这个仔细想其实也不难,主要是刚开始不熟悉导致感觉很难。这里用到的技术主要是求交点,开始我也不明白为什么要求这个交点,二次开发书上也没有讲,API提供的NewOpening方法里面的参数也没有需要交点,后来仔细研究了下,发现其实求这个交点,就是确定开洞口的那个洞口轮廓的中心点,明白这一点就简单了。我在开发这个洞口插件的时候,想到一个问题:假如和楼板等相交的是管道(随便举得例子,也可以是其他的)并且相交的不只是上下平面或者左右或者前后平面,而是上左平面,能不能找到一个解决方案,就是让开洞沿着管道中线开呢,现在还没有想出来,欢迎你们前来讨论。
以下是主要代码,难免出错欢迎各位大神及同行留言指正或提出更好的办法。
/// <summary>
/// 楼板开洞方法
/// </summary>
/// <param name="doc"></param>
public void CreatOpening(Autodesk.Revit.DB.Document doc, Selection selection)
{
Reference reference = selection.PickObject(ObjectType.Element, new ElementSelectionFilter(doc), "请选择需要开洞的图元");
Element o