Revit API修改保温层厚度

start
Revit API修改保温层厚度
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class cmd : IExternalCommand
{
    public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
    {
        UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
        Document doc = uiDoc.Document;
        Selection selection = uiDoc.Selection;

        Transaction ts = new Transaction(doc, this.ToString());
        ts.Start();
        //
        Reference refWall = selection.PickObject(ObjectType.Element, "选择墙:");
        Wall wall = doc.GetElement(refWall) as Wall;
        WallType wallType = wall.WallType;
        CompoundStructure cs = wallType.GetCompoundStructure();
        bool bHas = false;//是否拥有保温层
        int iWidth = 100;//要设置的保温层厚度
        IList<CompoundStructureLayer> layers = cs.GetLayers();//找到所有层
        foreach (CompoundStructureLayer layer in layers)
        {
            if (layer.Function == MaterialFunctionAssignment.Insulation)//判断保温层
            {
                bHas = true;
                layer.Width = iWidth / 304.8;
            }
        }
        if (!bHas)//没有保温层则创建
        {
            CompoundStructureLayer newLayer = new CompoundStructureLayer();
            newLayer.Function = MaterialFunctionAssignment.Insulation;
            newLayer.Width = iWidth / 304.8;
            //layers.Add(newLayer);
            layers.Insert(0, newLayer);
        }
        cs.SetLayers(layers);
        wallType.SetCompoundStructure(cs);
        //
        ts.Commit();

        return Result.Succeeded;
    }
}
Revit API修改保温层厚度
url:http://greatverve.cnblogs.com/p/revit-api-CompoundStructureLayer.html

Revit API修改保温层厚度,布布扣,bubuko.com

Revit API修改保温层厚度

上一篇:用PS制作出漂亮的钻石效果文字


下一篇:3dmax9.0教程:打造一把激光剑