Revit二次开发之“取得元素相交点IntersectionResultArray通过LocationCurve.Intersect()”...

1.取得元素的曲线,比如风管
LocationCurve元素曲线
LocationCurve curve = duct.Location as LocationCurve;
取得可以根据曲线确定位置的元素的曲线。
2.根据曲线取得交点
IntersectionResultArray交点数组
SetComparisonResult枚举,判断相交类型
SetComparisonResult result  =  curve1.Intersect(curve2, out  intersectionResultArray);
if (SetComparisonResult.Disjoint  !=  result) // 相交
{
    XYZ xyz 
=  intersectionResultArray.get_Item( 0 ).XYZPoint;
3.选取一个元素,可以得到选取点坐标。
reference  =  sel.PickObject(ObjectType.Element, ductSelectionFilter,  " 选择第一个风管 " );
Duct duct 
=  doc.GetElement(myReference)  as  Duct;
XYZ xyz 
=  reference.GlobalPoint;
from: http://revit.5d6d.com/thread-1225-1-1.html