前言
在这个 SDK 例子中介绍的是结构面板中 “连接” 的 API。
 
内容
涉及的 API 主要包括了:StructuralConnectionHandlerType 和 StructuralConnectionHandler。结构连接分为两种类型,常规连接和详细连接。
 
 可以通过 API 接口去判断是常规连接还是详细连接。下面以梁为例。
 常规连接:
 
详细连接:
 
常规连接
创建常规连接的逻辑:
// CreateGenericStructuralConnection
using (Transaction tran = new Transaction(activeDoc.Document, "Create generic structural connection"))
{
   tran.Start();
   StructuralConnectionHandler conn = StructuralConnectionHandler.CreateGenericConnection(activeDoc.Document, ids);
   TransactionStatus ts = tran.Commit();
}
详细连接
创建详细连接的逻辑:
using (Transaction transaction = new Transaction(activeDoc.Document, "Create detailed structural connection"))
{
   transaction.Start();
   // 这一步不一定可以完成,找不到 SteelConnectionsData.xml 这个文件,导致效果不是预期的。
   // 可以直接传一个 detail StructuralConnectionHandlerType 的 id 进去。
   StructuralConnectionHandlerType connectionType = StructuralConnectionHandlerType.Create(activeDoc.Document, "usclipangle", new Guid("A42C5CE5-91C5-47E4-B445-D053E5BD66DB"), "usclipangle");
   if (connectionType != null)
   {
      StructuralConnectionHandler.Create(activeDoc.Document, ids, connectionType.Id);
   }
   TransactionStatus ts = transaction.Commit();
}
其它
StructuralConnectionHandler 有 5 个 Create 相关的接口:
// 猜测可以创建默认连接
public static StructuralConnectionHandler Create(Document document, IList<ElementId> idsToConnect);
// 猜测可以创建常规连接和详细连接
public static StructuralConnectionHandler Create(Document document, IList<ElementId> idsToConnect, ElementId typeId);
public static StructuralConnectionHandler Create(Document document, IList<ElementId> elementIds, string typeName);
public static StructuralConnectionHandler Create(Document document, IList<ElementId> idsToConnect, ElementId typeId, IList<ConnectionInputPoint> additionalInputPoints);
// 猜测可以创建常规连接
public static StructuralConnectionHandler CreateGenericConnection(Document document, IList<ElementId> idsToConnect);
除了这些接口,StructuralConnectionHandler 也提供了修改连接对象的能力。










