前言
在这个 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
也提供了修改连接对象的能力。