xbim - 从 ifcSpace 获取 IfcPolyline
问题描述
我对 xBim 很陌生,我正在努力寻找我需要的信息。我已经能够遍历每个楼层的所有 IFCSpaces,并且我想找到每个空间的 IfcPolyline 以便我知道它的边界。但是怎么做?
using (IfcStore model = IfcStore.Open(filename, null))
{
List<IfcBuildingStorey> allstories = model.Instances.OfType<IfcBuildingStorey>().ToList();
for (int i=0;i<allstories.Count;i++)
{
IfcBuildingStorey storey = allstories[i];
var spaces = storey.Spaces.ToList();
for (int j=0;j<spaces.Count;j++)
{
var space = spaces[j];
var spaceBoundaries=space.BoundedBy.ToList();
for (int u=0;u<spaceBoundaries.Count;u++)
{
//IfcPolyline from here??
}
}
}
}
解决方案
这是一个很老的问题,但如果您仍在寻找答案:IfcSpace.BoundedBy
is an inverse relationship,会给您一个IfcRelSpaceBoundaries列表。这具有RelatedBuildingElement
属性,它将为您提供边界建筑元素,例如墙壁、门等。它还具有ConnectionGeometry
,本质上是一个接口,因为此连接的几何形状可能是曲线、点、曲面或体积。如果您在对象模型中进一步深入,您将看到边界可以是任何类型的曲线,而不仅仅是多段线。
完全不同的方法可能是访问空间几何Space.Representation
。这可能有一个 2D 表示,可能是一个多边形,或者它可能是一个带有轮廓的 3D 挤压。那将再次成为您正在寻找的东西。但请注意,它可以是任何其他类型的几何表示,具体取决于创作软件和模型作者。
推荐阅读
- python - 我有一个有 4 个角的多边形,而不是一个正方形。如何在python中获得较小部分的纬度和经度?
- mongodb - $match 并在 MongoDB 中 $unwind 之后更新对象中的某个键
- php - 需要 TCPDF 的空白页
- c# - 我在数据集中有两个数据表。我通常登录和退出。当我回去时,其中一个数据表是空的
- reactjs - 如何解决 Reactstrap Navbar 代码问题
- c - 使用 C 将键盘键向右移动 2 位的方法
- java - 多次打印到文件缓冲阅读器java
- ios - 使用 NSFetchedResultsController 在 UITableView 中插入/删除
- javascript - 在插入之前执行获取数据
- amazon-web-services - Terraform - 加载模块时出错 - 没有这样的文件或目录(文件夹重命名后)