ifc2x3等效于IfcExtrudedAreaSolidTapered

时间:2018-04-24 16:35:57

标签: c# ifc bim xbim

我希望能够在IFC中实现截锥。我知道有一种相当快速的方法可以在IFC 2x4中使用IfcExtrudedAreaSolidTapered类来实现它。

任何人都可以告诉我如何用Ifc 2x3做到这一点?

以下是我所拥有的:

IfcExtrudedAreaSolid CreateExtrudedAreaSolid(IfcStore model, IfcProfileDef 
profile,IfcAxis2Placement3D placement, double extrude)
{
    var extrusion = model.Instances.New<IfcExtrudedAreaSolid>();
    extrusion.Depth = extrude;
    extrusion.ExtrudedDirection = model.Instances.New<IfcDirection>(d => 
    d.SetXYZ(0, 0, 1));
    extrusion.Position = placement;
    extrusion.SweptArea = profile;
    return extrusion;
}

我在这里创建个人资料:

private IfcCircleHollowProfileDef MakeCircleHollowProfileDef(IfcStore model, 
IfcAxis2Placement3D placement, double r, double wallThickness)
{
    var circleProfile = model.Instances.New<IfcCircleHollowProfileDef>();
    circleProfile.Position = ConvertToAxis2D(placement, model);
    circleProfile.Radius = r;
    circleProfile.WallThickness = wallThickness;
    return circleProfile;
}

有没有人知道如何以正确的方式做到这一点?

1 个答案:

答案 0 :(得分:0)

我会选择cone并使用BooleanResult将其剪切(通过half space)。您希望布尔运算为DIFFERENCE,锥形作为第一个操作数,半个空格作为第二个操作数。

我没有在xBim中实现它的代码(我使用IfcPlusPlus),抱歉。根据您给定的代码,您需要计算的一个信息是锥体的整个高度,以将其切割回所需的高度。