Esempio n. 1
0
        /// <summary>
        /// Sets the Default Visibility of a workset within a document.
        /// </summary>
        /// <param name="workset">A workset.</param>
        /// <returns name="visibility">Whether the workset is visible by default.</returns>
        public static bool GetDefaultVisibility(Workset workset)
        {
            //Get Revit Document object
            revitDoc doc = DocumentManager.Instance.CurrentDBDocument;

            // Get the workset’s default visibility
            WorksetDefaultVisibilitySettings defaultVisibility = WorksetDefaultVisibilitySettings.GetWorksetDefaultVisibilitySettings(doc);
            bool visibility = defaultVisibility.IsWorksetVisible(workset.internalId);

            defaultVisibility.Dispose();
            return(visibility);
        }
Esempio n. 2
0
 public static void ApplyWorksetModifications(Document doc, List <WorksetParameter> worksets, ref TransactionLog log)
 {
     using (Transaction t = new Transaction(doc))
     {
         if (t.Start("Add Worksets to Model.") == TransactionStatus.Started)
         {
             foreach (var w in worksets)
             {
                 if (w.IsModified)
                 {
                     if (w.IsExisting && w.Id >= 0)
                     {
                         if (WorksetTable.IsWorksetNameUnique(doc, w.Name))
                         {
                             WorksetTable.RenameWorkset(doc, new WorksetId(w.Id), w.Name);
                         }
                         var defaultVisibilitySettings = WorksetDefaultVisibilitySettings.GetWorksetDefaultVisibilitySettings(doc);
                         defaultVisibilitySettings.SetWorksetVisibility(new WorksetId(w.Id), w.VisibleInAllViews);
                         log.AddSuccess(w.ToString());
                     }
                     else
                     {
                         Workset newWorkset = null;
                         if (WorksetTable.IsWorksetNameUnique(doc, w.Name))
                         {
                             newWorkset = Workset.Create(doc, w.Name);
                         }
                         else
                         {
                             log.AddFailure(w.ToString());
                             continue;
                         }
                         if (newWorkset != null)
                         {
                             var defaultVisibilitySettings = WorksetDefaultVisibilitySettings.GetWorksetDefaultVisibilitySettings(doc);
                             defaultVisibilitySettings.SetWorksetVisibility(newWorkset.Id, w.VisibleInAllViews);
                             log.AddSuccess(w.ToString());
                         }
                     }
                 }
             }
             t.Commit();
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Sets the Default Visibility of a workset within a document.
        /// </summary>
        /// <param name="workset">The workset that you wish to set the visibility of.</param>
        /// <param name="visible">The visibility of the workset</param>
        /// <returns name="workset">A Revit workset</returns>
        public static Workset SetDefaultVisibility(Workset workset, bool visible)
        {
            //Get Revit Document object
            revitDoc doc = DocumentManager.Instance.CurrentDBDocument;

            using (Autodesk.Revit.DB.Transaction trans = new Autodesk.Revit.DB.Transaction(doc))
            {
                trans.Start("Set Workset Default Visibility");

                // Set the workset’s default visibility
                WorksetDefaultVisibilitySettings defaultVisibility = WorksetDefaultVisibilitySettings.GetWorksetDefaultVisibilitySettings(doc);
                defaultVisibility.SetWorksetVisibility(workset.internalId, visible);

                trans.Commit();
                defaultVisibility.Dispose();
            }
            return(workset);
        }