首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xbim库创建自定义多边形墙

使用xbim库创建自定义多边形墙
EN

Stack Overflow用户
提问于 2020-04-23 06:20:57
回答 1查看 452关注 0票数 0

我试着用一些多边形点来制作ifc墙,并保存到ifc文件中。

我找到了一些方法,并尝试了这一点,但它不起作用。

这是我的代码:

代码语言:javascript
复制
private static void CreateCustomPolygonWall(IfcStore model)
{
    using (var txn = model.BeginTransaction("Create Custom Polygon"))
    {
        List<double[]> points = new List<double[]>();
        points.Add(new double[] { 0, 0, 0 });
        points.Add(new double[] { 100, 0, 0 });
        points.Add(new double[] { 100, 100, 0 });

        var list = new List<IfcCartesianPoint>();
        foreach (var coordinates in points.Select(p => p.Select(x => new IfcLengthMeasure(x))))
        {
            var point = model.Instances.New<IfcCartesianPoint>();
            point.Coordinates.AddRange(coordinates);
            list.Add(point);
        }

        var faceSet = model.Instances.New<Xbim.Ifc4.TopologyResource.IfcConnectedFaceSet>();
        List<int[]> indexes = new List<int[]>();
        indexes.Add(new int[] { 0, 1, 2 });
        foreach (var t in indexes)
        {
            var polyLoop = model.Instances.New<Xbim.Ifc4.TopologyResource.IfcPolyLoop>();
            polyLoop.Polygon.AddRange(t.Select(k => list[k]));

            var bound = model.Instances.New<Xbim.Ifc4.TopologyResource.IfcFaceBound>();
            bound.Bound = polyLoop;

            var face = model.Instances.New<Xbim.Ifc4.TopologyResource.IfcFace>();
            face.Bounds.Add(bound);
            faceSet.CfsFaces.Add(face);
        }

        var surface = model.Instances.New<IfcFaceBasedSurfaceModel>();
        surface.FbsmFaces.Add(faceSet);

        txn.Commit();
    }
}

如果我按照代码保存到ifc文件中,该文件具有我描述的多边形点。但它没有显示任何国际金融公司的观众。

代码语言:javascript
复制
#23=IFCCARTESIANPOINT((0.,0.,0.));
#24=IFCCARTESIANPOINT((100.,0.,0.));
#25=IFCCARTESIANPOINT((100.,100.,0.));

那么,如何创建多边形墙并使用xbim库将其保存到ifc文件中呢?

有什么暗示吗?

诚挚的问候。

EN

回答 1

Stack Overflow用户

发布于 2021-02-08 14:20:51

您需要创建的不仅仅是几何图形来创建一个IFC文件,其他查看者将处理和显示该文件。这里是三维墙创建的一个工作示例。如果您想将墙壁定义为任意配置文件,则可以将示例中的IfcRectangleProfileDef替换为其他轮廓定义,很可能将IfcArbitraryClosedProfileDef替换为OuterCurve If IfcPolyline

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61380566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档