如何以编程方式更改分割面的 material
how do you change the material of a splitface programatically
我在revit中使用spliface工具,在墙上创建了一个spliface对象。
我正在尝试使用 C#,这样如果我单击拆分面,它的 material 就会改变。我看了一些例子
Element splitelem = document.GetElement(wall.SplitElementId);
Autodesk.Revit.DB.Options opt = new Options();
Autodesk.Revit.DB.GeometryElement geomElem = wall.get_Geometry(opt);
int faceval = 0;
ElementId m = new ElementId(11534);
foreach (GeometryObject geomObj in geomElem)
{
// change the material using doc.paint();
}
但这不起作用。
您可以尝试迭代几何对象,确定所有面,并在使用带参数的 Document.Paint 方法(ElementId 元素、面、ElementId material)后绘制您的面.
Autodesk.Revit.DB.Options opt = new Options();
Autodesk.Revit.DB.GeometryElement geomElem = wall.get_Geometry(opt);
ElementId m = new ElementId(11534);
foreach (GeometryObject geomObj in geomElem)
{
if (geomObj is Face)
{
Face f = geomObj as Face;
doc.Paint(wall.Id, f, m);
}
}
我在revit中使用spliface工具,在墙上创建了一个spliface对象。
我正在尝试使用 C#,这样如果我单击拆分面,它的 material 就会改变。我看了一些例子
Element splitelem = document.GetElement(wall.SplitElementId);
Autodesk.Revit.DB.Options opt = new Options();
Autodesk.Revit.DB.GeometryElement geomElem = wall.get_Geometry(opt);
int faceval = 0;
ElementId m = new ElementId(11534);
foreach (GeometryObject geomObj in geomElem)
{
// change the material using doc.paint();
}
但这不起作用。
您可以尝试迭代几何对象,确定所有面,并在使用带参数的 Document.Paint 方法(ElementId 元素、面、ElementId material)后绘制您的面.
Autodesk.Revit.DB.Options opt = new Options();
Autodesk.Revit.DB.GeometryElement geomElem = wall.get_Geometry(opt);
ElementId m = new ElementId(11534);
foreach (GeometryObject geomObj in geomElem)
{
if (geomObj is Face)
{
Face f = geomObj as Face;
doc.Paint(wall.Id, f, m);
}
}