IFC集团支持

IFC 组支持

概述

IFC 组是 Aspose.3D 中新引入的功能,允许开发者处理 IFC 文件中定义的语义组。与传统的几何层次结构不同,IFC 组提供了一种以有意义的分组方式表示建筑元素的方法,从而实现更丰富的数据提取和操作。

什么是 IFC 组?

在 IFC(Industry Foundation Classes)格式中,组用于创建基于语义的层次结构,将相关实体(例如墙体、门)归于同一标识符下。Aspose.3D 通过 Group 类公开这些组,允许访问组的名称、语义信息以及子节点。

为什么使用 IFC 组?

使用 IFC 组为原本纯几何的场景图添加语义上下文,使得基于真实世界含义查询、过滤和处理建筑元素更加容易。它简化了提取特定建筑组件、应用材质覆盖或生成详细报告等任务。

Aspose.3D 支持

Aspose.3D 在 .NET API 中提供对 IFC 组的完整支持。以下章节展示如何启用并使用 IFC 组。

访问组信息

// 加载 IFC 文件
var scene = Aspose.ThreeD.Scene.FromFile("model.ifc");
// 遍历组
foreach(Group group in scene2.Library.Where(obj => obj is Group))
{
    Console.WriteLine($"Group Name: {group.Name}");
    Console.WriteLine($" Sub Groups: {group.Groups.Count}");
    Console.WriteLine($" Associated Nodes: {group.Nodes.Count}");
}

示例代码

以下端到端示例加载 IFC 文件,并打印语义层次结构:

using Aspose.ThreeD;

var scene = Scene.FromFile("sample.ifc");
scene.Open("sample.ifc", loadOptions);

void PrintGroup(Group group, string indent = "")
{
    foreach (var child in group.Groups)
    {
        Console.WriteLine($"{indent}{child.Name}");
        PrintGroup(child, indent + "  ");
    }
}

foreach(Group group in scene2.Library.Where(obj => obj is Group))
{
    PrintGroup(group);
}

参考资料