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); }
/// <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); }
/// <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); }
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); }