zoukankan      html  css  js  c++  java
  • 【Revit API】创建工作集并将element加入工作集中

    话不多说,直接上代码!

     public class WorkSetHelper
     {
            public void AddElementsToWorkSet(Document doc, List<Element> elements)
            {
                if (doc.IsWorkshared == true)
                {
                    var workset = GetWorkset(doc);
                    if (workset != null)
                    {
                        var worksetID = workset.Id.IntegerValue;
                        using (Transaction tran = new Transaction(doc, "[ToolSet] Add Elemens To WorkSet"))
                        {
                            tran.Start();
                            foreach (var ele in elements)
                            {
                                Parameter wsparam = ele.get_Parameter(BuiltInParameter.ELEM_PARTITION_PARAM);
                                if (wsparam != null)
                                {
                                    wsparam.Set(worksetID);
                                }                          
                            }
                            tran.Commit();
                        }                   
                    }               
                }
            }
    
            public Workset GetWorkset(Document doc)
            {
                Workset newWorkset = null;
                // Worksets can only be created in a document with worksharing enabled
                if (doc.IsWorkshared)
                {
                    string worksetName = "WorkSetName";
                    // Workset name must not be in use by another workset
                    if (WorksetTable.IsWorksetNameUnique(doc, worksetName))
                    {
                        using (Transaction tran = new Transaction(doc, "[ToolSet] Create Work Set For ToolSet"))
                        {
                            tran.Start();
                            newWorkset = Workset.Create(doc, worksetName);
                            tran.Commit();
                        }
                    }
                    else
                    {
                        IList<Workset> worksetList = new FilteredWorksetCollector(doc).OfKind(WorksetKind.UserWorkset).ToWorksets();
                        foreach (Workset workset in worksetList)
                        {
                            if (workset.Name.Contains(worksetName))
                            {
                                return workset;
                            }
                        }
                    }
                }
                return newWorkset;
            }
     }

    结尾:

            进入设计院两周,发现市面上的Revit插件与设计院的需求差距还是很大的,设计院对视图的显示方面的要求较高。一个人在中心从事Revit插件开发压力山大啊,告诉自己慢慢来,能赢!

  • 相关阅读:
    LeetCode Valid Sudoku
    接下来复习的重点
    leetcode:LRU Cache
    [leetcode] Insertion Sort List
    [QT Creator]LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 。
    [leetcode]Sort List
    李开复的七封信
    (归并排序)
    应聘面试自我介绍范文
    判断一颗二叉树是否是平衡二叉树
  • 原文地址:https://www.cnblogs.com/lovecsharp094/p/9051808.html
Copyright © 2011-2022 走看看