You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过C#.NET API在Smart 3D中获取Footing对象的端口

在Smart 3D API中获取Footing底面/拓扑信息的正确方法

你遇到的问题核心是:Footing的AssemblyChildren成员是FoundationComponent类型,它并未实现IStructConnectable接口,因此无法用Slab的方式直接转换获取端口。以下是两种可行的解决方案:

方法1:直接获取Footing底面标高

如果仅需要底面标高,可直接访问Footing自身的BaseElevation属性(多数Smart 3D API版本均提供该属性),无需遍历AssemblyChildren:

Footing footing = bottom as Footing;
if (footing != null)
{
    double bottomElevation = footing.BaseElevation;
    // 使用标高值做后续处理
}

方法2:通过FoundationComponent获取拓扑面/端口

若需要完整的拓扑面或端口信息,需将AssemblyChild转为FoundationComponent,再通过其几何属性或拓扑方法获取:

Footing footing = bottom as Footing;
ReadOnlyCollection<IAssemblyChild> assemblyChildren = footing.AssemblyChildren;

foreach (IAssemblyChild assemblyChild in assemblyChildren)
{
    FoundationComponent foundationComp = assemblyChild as FoundationComponent;
    if (foundationComp != null)
    {
        // 方式A:遍历几何面定位底面
        if (foundationComp.Geometry is IFaceCollection faceCollection)
        {
            foreach (IFace face in faceCollection.Faces)
            {
                // 假设Z轴向上,底面法向量向下(接近-1)
                if (face.Normal.Z < -0.9)
                {
                    // 获取底面拓扑端口(需确认IFace支持该方法)
                    TopologyPort bottomPort = face.GetTopologyPort();
                    // 处理底面拓扑信息
                    break;
                }
            }
        }

        // 方式B:直接筛选指定类型的拓扑端口
        IEnumerable<TopologyPort> facePorts = foundationComp.GetPorts(TopologyGeometryType.Face);
        foreach (TopologyPort port in facePorts)
        {
            if (port.ContextType == ContextTypes.Base)
            {
                // 找到目标底面端口
                // 处理端口信息
                break;
            }
        }
        break;
    }
}

关键说明

  • FoundationComponent是Footing的底层组成部件,其设计逻辑与Slab的可连接部件不同,因此不支持IStructConnectable接口。
  • 不同版本的Smart 3D API可能存在成员差异,建议结合官方API文档确认FoundationComponent的可用属性(如Geometry、GetPorts)和Footing的基础属性。

内容的提问来源于stack exchange,提问作者kingpin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:41:04