如何以编程方式更改分割面的材质

时间:2015-03-07 21:08:02

标签: c# revit revit-api

我在revit中使用了splitface工具,并在墙上创建了一个spliface对象。

我正在尝试使用C#,这样如果我点击分割面,那么它的材质就会改变。我看了一些例子

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();
}

但这不起作用。

2 个答案:

答案 0 :(得分:0)

您可以尝试迭代几何对象,确定所有面,并在使用带有参数的Document.Paint方法(ElementId元素,Face,ElementId材质)后绘制您正面的面。

答案 1 :(得分:0)

        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);
            }

        }