public Connector ConnectorAtPoint(Element e,XYZ point)
{
ConnectorSet connectorSet = null;
//风管连接件集合
if (e is Duct)
connectorSet = (e as Duct).ConnectorManager.Connectors;
//管线连接件集合
if (e is Pipe)
connectorSet = (e as Pipe).ConnectorManager.Connectors;
//桥架的连接件集合
if (e is CableTray)
connectorSet = (e as CableTray).ConnectorManager.Connectors;
//管件等可载入族的连接件集合
if (e is FamilyInstance)
{
FamilyInstance fi = e as FamilyInstance;
connectorSet = fi.MEPModel.ConnectorManager.Connectors;
}
//遍历连接件集合
foreach (Connector connector in connectorSet)
{
//如果连接件的中心和目标点相距很小时视为目标连接件
if (connector.Origin.DistanceTo(point) < 1 / 304.8)
//返回该连接件
return connector;
}
//如果没有匹配到,则返回null
return null;
}
另外一种
public Connector ConnectorAtPoint(ConnectorSet connectorSet, XYZ point)
{
//遍历连接件集合
foreach (Connector connector in connectorSet)
{
//距离容差为1mm
if (connector.Origin.DistanceTo(point) < 1 / 304.8)
{
//返回该连接件
return connector;
}
}
//如果没有匹配到,则返回null;
return null;
}