0

概括

  • 我有一个 ifc 文件,其中包含不同的 IfcEntities,例如 IfcWall、IfcBeam、IfcColumn 等。
  • 我正在努力寻找一种方法来列出这个 ifc 文件中的所有不同实体
  • 该列表应包含每个 ifcentity 出现一次 {"IfcWall", "IfcColumn", "IfcBeam", ...}
  • 还调试了代码以查看是否有任何属性包含我正在搜索的值

我的代码:

  • 我使用了 xbim Essential 快速入门指南
  • 谷歌也
  • 浏览了github上的问题
using (var model = IfcStore.Open(_FilePath))
{
    var allInstances = model.Instances;
    var testList = model.Instances.OfType<IIfcBuildingElement>();

    var nameList = new List<string>();
    var objTypeList = new List<string>();
    foreach (var item in testList)
    {
        var objType = item.IsTypedBy;
        var firstObjType = objType.ElementAt(0);
        var relType = firstObjType.RelatingType;

        var name = item.Name;
        nameList.Add(name);
    }
}

我的期望:

  • 包含所有 IfcEntities 的简单列表
  • 像 {"IfcWall", "IfcColumn", "IfcBeam", ...}

将不胜感激任何帮助

4

1 回答 1

0

感谢@martin1cerny

答案很简单:

var testList = model.Instances.OfType<IIfcBuildingElement>().GroupBy(e => e.GetType());

github上的问题/问题

于 2021-04-06T10:09:14.483 回答