如何在 Revit API 中显示创建的立方体?

问题描述

这听起来可能是一个非常基本的问题,对此我深表歉意 - 但是,我确实在任何地方都找不到关于此的任何信息。

我正在尝试创建一个命令,该命令创建一个由模型线组成的立方体并将其放入绘图中。对于多维数据集的创建,我在 Jeremy Tammik 的博客上找到了一些关于此的文档并得到以下代码:

static Solid CreateCube(double d)
{
     return CreateRectangularPrism(
          XYZ.Zero,d,d);
}
static Solid CreateRectangularPrism(
     XYZ center,double d1,double d2,double d3)
{
     List<Curve> profile = new List<Curve>();
     XYZ profile00 = new XYZ(-d1 / 2,-d2 / 2,-d3 / 2);
     XYZ profile01 = new XYZ(-d1 / 2,d2 / 2,-d3 / 2);
     XYZ profile11 = new XYZ(d1 / 2,-d3 / 2);
     XYZ profile10 = new XYZ(d1 / 2,-d3 / 2);

     profile.Add(Line.CreateBound(profile00,profile01));
     profile.Add(Line.CreateBound(profile01,profile11));
     profile.Add(Line.CreateBound(profile11,profile10));
     profile.Add(Line.CreateBound(profile10,profile00));

     CurveLoop curveLoop = CurveLoop.Create(profile);

     SolidOptions options = new SolidOptions(
     ElementId.InvalidElementId,ElementId.InvalidElementId);

     return GeometryCreationUtilities
     .CreateExtrusionGeometry(
     new CurveLoop[] { curveLoop },XYZ.BasisZ,d3,options);
}

在 Execute() 方法中,我只有这个:

     using (Transaction tx = new Transaction(doc))
     {
        tx.Start("create cube");


        Solid cube = CreateCube(100);
        
        // What shall I do next??
        tx.Commit();
     }

此时我被卡住了,因为我似乎找不到任何方法在绘图中显示这个立方体。此外,让我更加困惑的是多维数据集的 Id 设置为 -1。我还检查了它在代码中的可见性,它似乎成立,但是,它没有出现在绘图中的任何地方。我错过了什么?我怎样才能让它出现在绘图中?

非常欢迎任何提示,文档即代码!

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)