private static IList <Workset> GetAllWorksets(Document doc)
        {
            string message = string.Empty;
            FilteredWorksetCollector collector = new FilteredWorksetCollector(doc);

            collector.OfKind(WorksetKind.FamilyWorkset);
            IList <Workset> worksets = collector.ToWorksets();

            //if (worksets.Count == 0)
            //    TaskDialog.Show("Worksets", " No Worksets in project");
            foreach (Workset workset in worksets)
            {
                message += "Workset : " + workset.Name;
                message += "\nUnique Id : " + workset.UniqueId;
                message += "\nOwner : " + workset.Owner;
                message += "\nKind : " + workset.Kind;
                message += "\nIs default : " + workset.IsDefaultWorkset;
                message += "\nIs editable : " + workset.IsEditable;
                message += "\nIs open : " + workset.IsOpen;
                message += "\nIs visible by default : " + workset.IsVisibleByDefault + "\n";
                message += "\n\n";
                //TaskDialog.Show("GetWorksetsInfo", message);
            }
            return(worksets);
        }
Exemple #2
0
        /// <summary>
        /// 创建工作集
        /// </summary>
        /// <param name="doc">当前文档</param>
        /// <param name="worksetName">输入工作集名称</param>
        /// <returns>新的工作集</returns>
        public Workset CreateWorksets(Document doc, string worksetName)
        {
            Workset newWorksets = null;

            if (WorksetTable.IsWorksetNameUnique(doc, worksetName))
            {
                using (Transaction trans = new Transaction(doc, "创建工作集"))
                {
                    trans.Start();
                    newWorksets = Workset.Create(doc, worksetName);
                    trans.Commit();
                }
            }
            //判定是否有重名的工作集
            else
            {
                FilteredWorksetCollector worksetCollector = new FilteredWorksetCollector(doc);
                IList <Workset>          worksetsList     = worksetCollector.OfKind(WorksetKind.UserWorkset).ToWorksets();
                foreach (Workset workset in worksetsList)
                {
                    if (workset.Name.Contains(worksetName))
                    {
                        return(workset);
                    }
                }
            }
            return(newWorksets);
        }
        private static IList <Workset> GetAllWorksets(Document doc)
        {
            string message = string.Empty;

            FilteredWorksetCollector collector = new FilteredWorksetCollector(doc);

            collector.OfKind(WorksetKind.FamilyWorkset);

            IList <Workset> worksets = collector.ToWorksets();

            return(worksets);
        }
        internal static SortedDictionary <string, WorksetId> getMapper(Document doc)
        {
            SortedDictionary <string, WorksetId> mapper           = new SortedDictionary <string, WorksetId>();
            FilteredWorksetCollector             worksetCollector = new FilteredWorksetCollector(doc);
            List <Workset> worksets = worksetCollector.OfKind(WorksetKind.UserWorkset).ToList();

            foreach (Workset workset in worksets)
            {
                mapper.Add(workset.Name, workset.Id);
            }

            return(mapper);
        }
Exemple #5
0
        /// <summary>
        /// Retrieves all the user worksets from a document.  Excludes view and family worksets.
        /// </summary>
        /// <returns name="worksets">Returns all user worksets in the document.</returns>
        public static List <Workset> GetUserWorksets()
        {
            //Get Revit Document object
            revitDoc doc = DocumentManager.Instance.CurrentDBDocument;
            FilteredWorksetCollector fwCollector = new FilteredWorksetCollector(doc);
            List <Workset>           worksets    = new List <Workset>();

            foreach (revitWorkset workset in fwCollector.OfKind(WorksetKind.UserWorkset))
            {
                worksets.Add(new Workset(doc, workset));
            }
            return(worksets);
        }
        //return list of user-created worksets
        public static List <Workset> getAllUserWorksets(Document curDoc)
        {
            //get all user created worksets in current file
            FilteredWorksetCollector worksetCollector = new FilteredWorksetCollector(curDoc);

            worksetCollector.OfKind(WorksetKind.UserWorkset);

            //create list of worksets
            List <Workset> worksetList = new List <Workset>();

            foreach (Workset curWorkset in worksetCollector)
            {
                //add to list
                worksetList.Add(curWorkset);
            }

            return(worksetList);
        }
        internal static List <WipeOption> GetWorksetCleaners(Document doc)
        {
            var worksetFuncs = new List <WipeOption>();

            // if model is workshared, get a list of current worksets
            if (doc.IsWorkshared)
            {
                var cl          = new FilteredWorksetCollector(doc);
                var worksetList = cl.OfKind(WorksetKind.UserWorkset);

                // duplicate the workset element remover function for each workset
                foreach (var workset in worksetList)
                {
                    WipeOption wipeOption = new WorksetRemover(doc, workset.Name);
                    worksetFuncs.Add(wipeOption);
                }
            }

            return(worksetFuncs);
        }
Exemple #8
0
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            UIDocument uidoc = commandData.Application.ActiveUIDocument;
            Document   doc   = uidoc.Document;

            View activeview = uidoc.ActiveView;

            FilteredWorksetCollector collector = new FilteredWorksetCollector(doc);

            collector.OfKind(WorksetKind.UserWorkset);

            List <Workset> list_visible   = new List <Workset>();
            List <Workset> list_invisible = new List <Workset>();

            foreach (Workset ws in collector)
            {
                if (activeview.IsWorksetVisible(ws.Id))
                {
                    list_visible.Add(ws);
                }
                else
                {
                    list_invisible.Add(ws);
                }
            }


            //window
            Window1 window = new Window1();

            window.listbox_visible.ItemsSource   = list_visible;
            window.listbox_invisible.ItemsSource = list_invisible;

            //selected
            List <Workset> seleted_visible   = new List <Workset>();
            List <Workset> seleted_invisible = new List <Workset>();

            if (window.ShowDialog() == true)
            {
                var objs1 = window.listbox_visible.SelectedItems;
                foreach (Object obj in objs1)
                {
                    seleted_visible.Add(obj as Workset);
                }

                var objs2 = window.listbox_invisible.SelectedItems;
                foreach (Object obj in objs2)
                {
                    seleted_invisible.Add(obj as Workset);
                }
            }

            //change visible
            using (Transaction transaction = new Transaction(doc))
            {
                transaction.Start("改变工作集可见性");

                foreach (Workset ws in seleted_visible)
                {
                    activeview.SetWorksetVisibility(ws.Id, WorksetVisibility.Hidden);
                }

                foreach (Workset ws in seleted_invisible)
                {
                    activeview.SetWorksetVisibility(ws.Id, WorksetVisibility.Visible);
                }

                transaction.Commit();
            }


            return(Result.Succeeded);
        }