Revit自带命令图标获取

有时候,我们对Revit本身自带的命令显示的图标产生了兴趣,要怎么才能获取到这些图片呢。直接在安装目录下找好像并没有找到。那就只能换个思路了...

思路:反编译Revit图标资源类库UIFrameworkRes.dll,获取Revit自身命令的图标资源流,保存到本地。

1、首先找到UIFrameworkRes.dll所在的位置,这个文件在Revit的安装目录下。

2、调用Revit生成图标的方法。在D:\Ribbons会生成Revit所有自身命令的图标。方法具体实现在下文

GenerateRevitIcons(@"D:\Ribbons", @"D:\LightRevit\RevitDlls");

 

生成revit图标的方法


public static void GenerateRevitIcons(string targetFolder,string revitFolder)
        {
            var resourceDll = Path.Combine(revitFolder, "UIFrameworkRes.dll");
            var resource = Assembly.LoadFile(resourceDll);
            var info = resource.GetManifestResourceStream("UIFrameworkRes.g.resources");
            ResourceReader resourceReader = new ResourceReader(info);
            var directory = targetFolder;
            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }
            foreach (DictionaryEntry en in resourceReader)
            {
                var name = en.Key.ToString();
                if (name.StartsWith(@"ribbon/images"))
                {
                    var tempFileName = Path.GetFileName(name);
                    var path = Path.Combine(directory, tempFileName);
                    Stream stream = en.Value as Stream;
                    if (stream == null)
                    {
                        continue;
                    }
                    var bytes = new Byte[stream.Length];
                    stream.Read(bytes, 0, bytes.Length);
                    File.WriteAllBytes(path, bytes);
                }
            }

        }

结束:当然这些代码没什么难度。唯一的所得就是给二次开发的同学打开了一种思路,不要被RevitApi,RevitUIApi这两个类库束缚。

如果只需要命令图标的话,可以关注公众号:小红楼BIM,发送资料编码:da100896, 获取资料下载链接。

公众号二维码:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值