start

[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 = ;//要设置的保温层厚度
        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(, newLayer);
        }
        cs.SetLayers(layers);
        wallType.SetCompoundStructure(cs);
        //
        ts.Commit();         return Result.Succeeded;
    }
}

url:http://greatverve.cnblogs.com/p/revit-api-CompoundStructureLayer.html

Revit API修改保温层厚度的更多相关文章

  1. 关于Revit API修改元素参数的问题?

    >ADN: DEVR3894  >ADN service level: Professional  >产品:Revit MEP 2012  >版本:2012  >语言:中 ...

  2. Revit API修改链接文件房间边界

    start [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] );//设置房间边界     ...

  3. Revit API创建墙的保温层修改墙厚度

    start [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)]  / ;         ; ...

  4. 【转】【WPF】 WPF 调用API修改窗体风格实现真正的无边框窗体

    WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm中无边框窗体的样式.但是AllowTransparency ...

  5. 【Revit API】梁构件支座检查算法

    一.前言         应该是第二次写关于Revit API的博文了.虽然在BIM企业中工作,从事桌面BIM软件开发,但是我是不怎么喜欢写Revit API相关的代码.平时更多的是在写界面展示,架构 ...

  6. Revit API 判断一个构件在某个视图中的可见性

    查看 Revit API.发现有Element::IsHidden这个方法.通过UI创建一个element,注意要使得这个element在某些视图可见,但是在另一些视图不可见.运行下面的方法,你会发现 ...

  7. Revit API 操作共享参数和项目参数

    1.获取共享参数 private string GetSharInfo(Autodesk.Revit.ApplicationServices.Application revitApp) { Strin ...

  8. Revit API射线法读取空间中相交的元素

    Revit API提供根据射线来寻找经过的元素.方法是固定模式,没什么好说.关键代码:doc.FindReferencesWithContextByDirection(ptStart, (ptEnd  ...

  9. Revit API 加载族并生成实例图元

    在Revit API中加载族可以使用Doc.LoadFamily方法,传入要加载的族文件路径名,但是这种方式有一种缺点,就是如果族文件在当前工程中没有加载的话则返回成功,如果已经加载过,则返回失败,也 ...

随机推荐

  1. Linux下select&poll&epoll的实现原理(一)【转】

    转自:http://www.cnblogs.com/lanyuliuyun/p/5011526.html 最近简单看了一把 linux-3.10.25 kernel中select/poll/epoll ...

  2. springcloud使用Zuul构建微服务网关入门

    为什么要使用微服务网关 不同的微服务一般会经过不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求. 如果让客户端直接与各个微服务通信,会有以下的问题: 客户端会多次请求不同的微 ...

  3. webapck编译打包stylus文件

    先安装css-loader.stylus.stylus-loader npm install --save-dev css-loader npm install --save-dev stylus n ...

  4. PHP跨域访问

    1.允许所有域名访问 header('Access-Control-Allow-Origin: *'); 2.允许单个域名访问 header('Access-Control-Allow-Origin: ...

  5. SpringBoot-定制banner

    我们在启动Spring Boot项目的时候,在控制台会默认输出一个启动图案 这个图案如果你需要的话是可以自己修改的,修改方式很简单 1.在src/main/resources下新建一个banner.t ...

  6. C/C++ ASCII码表

    C: dec oct hex ch   dec oct hex ch   dec oct hex ch   dec oct hex ch 0 0 00 NUL (null) 32 40 20 (spa ...

  7. ExpressMapper- The New .NET Mapper!

    推荐,据测试比手工映射的效率还高. https://www.codeproject.com/Tips/1009198/Expressmapper-The-New-NET-Mapper

  8. WinForm1

    一.窗体的各种属性 二.控件 1.公共控件 2.容器控件 3.菜单控件

  9. hdu 2795 公告板 (单点最值)

    题意:有个公告板,大小为h*w,要贴n张公告,每个公告的长度是x,高度固定为1,公告放的要尽可能靠上并尽可能靠左,每给出一张公告,要求这个公告在满足要求的情况下放在了第几层. Sample Input ...

  10. nvidia-smi 命令解读

    nvidia-smi 的定义: 基于 NVIDIA Management Library (NVIDIA 管理库),实现 NVIDIA GPU 设备的管理和监控功能 主要支持 Tesla, GRID, ...