连接器的类别,风管不仅有两端,可能在曲线上也有。

//连接器
[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class cmdConnector : IExternalCommand
{
    public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
    {
        UIApplication app = commandData.Application;
        Document doc = app.ActiveUIDocument.Document;
        Selection sel = app.ActiveUIDocument.Selection;         Transaction ts = new Transaction(doc, "revit");
        ts.Start();         Reference refDuct = sel.PickObject(ObjectType.Element, "duct");
        Duct duct = doc.GetElement(refDuct) as Duct;
        ConnectorSetIterator csi = duct.ConnectorManager.Connectors.ForwardIterator();
        int iCount = ;
        int iEnd = ;
        int iCurve = ;
        while (csi.MoveNext())
        {
            iCount += ;
            Connector conn = csi.Current as Connector;
            if (ConnectorType.End == conn.ConnectorType)//一般风管的连接器
            {
                iEnd += ;
            }
            else if (ConnectorType.Curve == conn.ConnectorType)//风管曲线上的连接器
            {
                iCurve += ;
            }
        }
        TaskDialog.Show("count", iCount + "," + iEnd + "," + iCurve + "," + duct.UniqueId);         ts.Commit();         return Result.Succeeded;
    }
}

url:http://greatverve.cnblogs.com/p/revit-mep-api-ConnectorType.html

05-11 17:10