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); }
internal static IList <Autodesk.Revit.DB.Workset> UserWorksets(Document doc) { IList <Autodesk.Revit.DB.Workset> elements; using (FilteredWorksetCollector fwc = new FilteredWorksetCollector(doc).OfKind(WorksetKind.UserWorkset)) { elements = fwc.ToWorksets(); } return(elements); }
private void CollectSourceItems() { try { sourceItems = new List <ItemInfo>(); //workset FilteredWorksetCollector worksetCollector = new FilteredWorksetCollector(m_doc); IList <Workset> worksets = worksetCollector.ToWorksets(); var userWorksets = from ws in worksets where ws.Kind == WorksetKind.UserWorkset select ws; if (userWorksets.Count() > 0) { foreach (Workset workset in userWorksets) { ItemInfo info = new ItemInfo(workset, ViewBy.Workset); sourceItems.Add(info); } } //phase PhaseArray phases = m_doc.Phases; if (phases.Size > 0) { foreach (Phase phase in phases) { ItemInfo info = new ItemInfo(phase, ViewBy.Phase); sourceItems.Add(info); } } //design option FilteredElementCollector collector = new FilteredElementCollector(m_doc); IList <DesignOption> options = collector.OfClass(typeof(DesignOption)).ToElements().Cast <DesignOption>().ToList(); foreach (DesignOption dOption in options) { ItemInfo info = new ItemInfo(dOption, ViewBy.DesignOption); sourceItems.Add(info); } //linked models collector = new FilteredElementCollector(m_doc); IList <RevitLinkType> types = collector.OfClass(typeof(RevitLinkType)).ToElements().Cast <RevitLinkType>().ToList(); foreach (RevitLinkType linkType in types) { ItemInfo info = new ItemInfo(linkType, ViewBy.Link); sourceItems.Add(info); } sourceItems = sourceItems.OrderBy(o => o.ItemName).ToList(); } catch (Exception ex) { MessageBox.Show("Failed to collect source items.\n" + ex.Message, "Collect Source Items", MessageBoxButton.OK, MessageBoxImage.Warning); } }
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); }
public static ViewPlan CreateWorksetFloorPlan(Document doc, ItemInfo itemInfo, ViewFamilyType viewPlanFamilyType, Level planLevel, bool overwrite) { ViewPlan viewPlan = null; string viewName = planLevel.Name + " - " + itemInfo.ItemName; using (TransactionGroup tg = new TransactionGroup(doc)) { tg.Start("Create Floor Plan"); try { FilteredElementCollector collector = new FilteredElementCollector(doc); List <ViewPlan> viewPlans = collector.OfClass(typeof(ViewPlan)).ToElements().Cast <ViewPlan>().ToList(); var views = from view in viewPlans where view.Name == viewName select view; if (views.Count() > 0) { if (overwrite) { viewPlan = views.First(); } else { return(viewPlan); } } if (null == viewPlan) { using (Transaction trans = new Transaction(doc)) { trans.Start("Create Plan View"); try { viewPlan = ViewPlan.Create(doc, viewPlanFamilyType.Id, planLevel.Id); viewPlan.Name = viewName; trans.Commit(); } catch (Exception ex) { trans.RollBack(); MessageBox.Show("Failed to create plan view.\n" + ex.Message, "Create Plan View", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } using (Transaction trans = new Transaction(doc)) { trans.Start("Set Visibility"); try { FilteredWorksetCollector worksetCollector = new FilteredWorksetCollector(doc); IList <Workset> worksetList = worksetCollector.ToWorksets(); var worksets = from workset in worksetList where workset.Kind == WorksetKind.UserWorkset select workset; foreach (Workset ws in worksets) { if (ws.Kind == WorksetKind.UserWorkset) { if (ws.Id.IntegerValue == itemInfo.ItemId) { viewPlan.SetWorksetVisibility(ws.Id, WorksetVisibility.Visible); } else { viewPlan.SetWorksetVisibility(ws.Id, WorksetVisibility.Hidden); } } } trans.Commit(); } catch (Exception ex) { trans.RollBack(); MessageBox.Show("Failed to set visibility.\n" + ex.Message, "Set Visibility", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } catch (Exception ex) { tg.RollBack(); MessageBox.Show("Failed to create floor plans by worksets.\n" + ex.Message, "Create Floor Plans by Worksets", MessageBoxButtons.OK, MessageBoxIcon.Warning); } tg.Assimilate(); } return(viewPlan); }
public static View3D CreateWorkset3DView(Document doc, ItemInfo itemInfo, ViewFamilyType view3dFamilyType, bool overwrite) { View3D view3D = null; try { string viewName = "WS - 3D - " + itemInfo.ItemName; using (TransactionGroup tg = new TransactionGroup(doc)) { tg.Start("Create 3D View"); try { FilteredElementCollector collector = new FilteredElementCollector(doc); List <View3D> view3ds = collector.OfClass(typeof(View3D)).ToElements().Cast <View3D>().ToList(); var views = from view in view3ds where view.Name == viewName select view; if (views.Count() > 0) { if (overwrite) { view3D = views.First(); } else { return(view3D); } } if (null == view3D) { using (Transaction trans = new Transaction(doc)) { trans.Start("Create Isometric"); try { view3D = View3D.CreateIsometric(doc, view3dFamilyType.Id); view3D.Name = viewName; if (view3D.CanModifyViewDiscipline()) { view3D.Discipline = ViewDiscipline.Coordination; } trans.Commit(); } catch (Exception ex) { trans.RollBack(); MessageBox.Show("Failed to create Isometric.\n" + ex.Message, "Create Isometric", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } using (Transaction trans = new Transaction(doc)) { trans.Start("Set Visibility"); try { FilteredWorksetCollector worksetCollector = new FilteredWorksetCollector(doc); IList <Workset> worksetList = worksetCollector.ToWorksets(); var worksets = from workset in worksetList where workset.Kind == WorksetKind.UserWorkset select workset; foreach (Workset ws in worksets) { if (ws.Kind == WorksetKind.UserWorkset) { if (ws.Id.IntegerValue == itemInfo.ItemId) { view3D.SetWorksetVisibility(ws.Id, WorksetVisibility.Visible); } else { view3D.SetWorksetVisibility(ws.Id, WorksetVisibility.Hidden); } } } trans.Commit(); } catch (Exception ex) { trans.RollBack(); MessageBox.Show("Failed to set visibility.\n" + ex.Message, "Set Visibility", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } using (Transaction trans = new Transaction(doc)) { trans.Start("Set SectionBox"); try { collector = new FilteredElementCollector(doc, view3D.Id); List <Element> elements = collector.ToElements().ToList(); if (elements.Count > 0) { BoundingBoxXYZ boundingBox = GetBoundingBox(elements); if (null != boundingBox) { view3D.SetSectionBox(boundingBox); } } trans.Commit(); } catch (Exception ex) { trans.RollBack(); MessageBox.Show("Failed to set sectionbox.\n" + ex.Message, "Set Sectionbox", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } catch (Exception ex) { MessageBox.Show("Failed to create 3d views by worksets.\n" + ex.Message, "Create 3D Views by Worksets", MessageBoxButtons.OK, MessageBoxIcon.Warning); tg.RollBack(); } tg.Assimilate(); } } catch (Exception ex) { MessageBox.Show("Failed to create workset views.\n" + ex.Message, "Create Workset 3D View", MessageBoxButtons.OK, MessageBoxIcon.Warning); } return(view3D); }