Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在revit api c中创建屋顶而不创建墙#_C#_Revit Api_Revit - Fatal编程技术网

C# 如何在revit api c中创建屋顶而不创建墙#

C# 如何在revit api c中创建屋顶而不创建墙#,c#,revit-api,revit,C#,Revit Api,Revit,我正在进行一个项目,需要通过revit文档中的代码创建屋顶。 我浏览了以下链接: 但以上所有链接都建议先选择墙。 我可以创建屋顶而不创建墙吗 任何帮助都将不胜感激 谢谢你当然可以。可以使用,并使用CurveArray对其进行填充,以定义封装外形 示例代码中的外部命令Lab2\u 0\u CreateLittleHouse演示了如何: corners[0] -= w * ( XYZ.BasisX + XYZ.BasisY ); corners[1] += w *

我正在进行一个项目,需要通过revit文档中的代码创建屋顶。 我浏览了以下链接:

但以上所有链接都建议先选择墙。 我可以创建屋顶而不创建墙吗

任何帮助都将不胜感激

谢谢你

当然可以。可以使用,并使用CurveArray对其进行填充,以定义封装外形

示例代码中的外部命令Lab2\u 0\u CreateLittleHouse演示了如何:

      corners[0] -= w * ( XYZ.BasisX + XYZ.BasisY );
      corners[1] += w * ( XYZ.BasisX - XYZ.BasisY );
      corners[2] += w * ( XYZ.BasisX + XYZ.BasisY );
      corners[3] -= w * ( XYZ.BasisX - XYZ.BasisY );

      CurveArray profile = new CurveArray();

      for( int i = 0; i < 4; ++i )
      {
        Line line = Line.CreateBound( // 2014
          corners[i], corners[3 == i ? 0 : i + 1] );

        profile.Append( line );
      }

      List<Element> roofTypes
        = new List<Element>(
          LabUtils.GetElementsOfType(
            doc, typeof( RoofType ),
            BuiltInCategory.OST_Roofs ) );

      RoofType roofType = roofTypes
        .Cast<RoofType>()
        .FirstOrDefault<RoofType>( typ
          => null != typ.GetCompoundStructure() );

      ModelCurveArray modelCurves
        = new ModelCurveArray();

      FootPrintRoof roof
        = createDoc.NewFootPrintRoof( profile,
          levelTop, roofType, out modelCurves );
corners[0]-=w*(XYZ.BasisX+XYZ.BasisY);
角[1]+=w*(XYZ.BasisX-XYZ.BasisY);
角[2]+=w*(XYZ.BasisX+XYZ.BasisY);
角[3]=w*(XYZ.BasisX-XYZ.BasisY);
CurveArray轮廓=新的CurveArray();
对于(int i=0;i<4;++i)
{
Line Line=Line.CreateBound(//2014
角[i],角[3==i?0:i+1]);
追加(行);
}
列出屋顶类型
=新列表(
LabUtils.GetElementsOfType(
文件类型(屋顶类型),
BuiltInCategory.OST_);
ROOTTYPE ROOTTYPE=屋顶类型
.Cast()
.FirstOrDefault(典型
=>null!=typ.GetCompoundStructure());
ModelCurveArray modelCurves
=新模型CurveArray();
屋顶脚印
=createDoc.NewFootPrintRoof(配置文件,
水平面、屋顶型、室外模型曲线);