C# 如何在revit api c中创建屋顶而不创建墙#
我正在进行一个项目,需要通过revit文档中的代码创建屋顶。 我浏览了以下链接: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 *
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(配置文件,
水平面、屋顶型、室外模型曲线);