zoukankan      html  css  js  c++  java
  • Revit二次开发之获得项目族预览图

     

    Revit二次开发之获得项目族预览图

    using Autodesk.Revit.UI;
    using Autodesk.Revit.DB;
    using Autodesk.Revit.Attributes;
    using System.Windows.Media.Imaging;
    using Autodesk.Revit.UI.Selection;
     
    namespace HelloWorld
    {
        [Transaction(TransactionMode.Manual)]
        [Regeneration(RegenerationOption.Manual)]
        public class Test : IExternalCommand
        {
            public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
            {
                UIDocument uidoc = commandData.Application.ActiveUIDocument;
                Document doc = uidoc.Document;
                Reference refer = uidoc.Selection.PickObject(ObjectType.Element,new Filter(), "拾取目标构件");
     
                FamilyInstance instance = doc.GetElement(refer) as FamilyInstance;
                FamilySymbol symbol = instance.Symbol;
     
                //可以将image保存或是传递给PictreBox
                System.Drawing.Image image = symbol.GetPreviewImage(new System.Drawing.Size(100,100));
                
                return Result.Succeeded;
            }
        }
        //过滤器
        public class Filter : ISelectionFilter
        {
            public bool AllowElement(Element elem)
            {
                return elem.Category.Name == "管道附件" & elem.Name == "钢管_沟槽_同径90度弯头_DN25-600";
            }
     
            public bool AllowReference(Reference reference, XYZ position)
            {
                return false;
            }
        }
     
    }
  • 相关阅读:
    NOI2010 超级钢琴
    [linux][nginx] 常用2
    [linux][nginx] 常用
    [PHP]听说随机数mt_rand()比rand()速度快,闲的无聊测试了一下!
    [linux] 权限问题
    [Laravel] 自带分页实现以及links方法不存在错误
    [YII2] 去除自带js,加载自己的JS,然后ajax(json)传值接值!
    [PHP]PHP设计模式:单例模式
    [html]浏览器标签小图标LOGO简单设置
    [javascript]JS获取当前时间戳的方法
  • 原文地址:https://www.cnblogs.com/liaocheng/p/6029102.html
Copyright © 2011-2022 走看看