如何以编程方式更改分割面的 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);
            }

        }