Esempio n. 1
0
        public static void Set(Application app, Document doc, string name, SlackSettings s)
        {
            ExtensibleStorageFilter f
                = new ExtensibleStorageFilter(
                      ExtensibleStorage.SettingsSchema.SchemaGuid);

            DataStorage dataStorage
                = new FilteredElementCollector(doc)
                  .OfClass(typeof(DataStorage))
                  .WherePasses(f)
                  .Where <Element>(e => name.Equals(e.Name))
                  .FirstOrDefault <Element>() as DataStorage;

            Entity entity;

            if (dataStorage == null)
            {
                using (Transaction t = new Transaction(doc, "Create settings schema"))
                {
                    t.Start();

                    dataStorage      = DataStorage.Create(doc);
                    dataStorage.Name = name;

                    entity = new Entity(ExtensibleStorage.SettingsSchema.InitializeSchema());
                    dataStorage.SetEntity(entity);

                    t.Commit();
                }
            }

            Transaction updateSettings = new Transaction(doc, "Update settings");

            updateSettings.Start();
            entity = dataStorage.GetEntity(ExtensibleStorage.SettingsSchema.InitializeSchema());

            entity.Set("slackOn", s.slackOn);
            entity.Set("slackWSWarn", s.slackWSWarn);
            entity.Set("slackModelWarn", s.slackModelWarn);
            entity.Set("slackBPWarn", s.slackBPWarn);
            entity.Set("slackWSInfo", s.slackWSInfo);
            entity.Set("slackModelInfo", s.slackModelInfo);
            entity.Set("slackBPInfo", s.slackBPInfo);
            entity.Set("slackExtraTrackPin", s.slackExtraTrackPin);
            entity.Set("giphySet", s.giphySet);
            entity.Set("tidySet", s.tidySet);
            entity.Set("slackToken", s.slackToken);
            entity.Set("slackCh", s.slackCh);
            entity.Set("slackChId", s.slackChId);

            dataStorage.SetEntity(entity);
            updateSettings.Commit();
        }
Esempio n. 2
0
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            var uiDoc  = commandData.Application.ActiveUIDocument;
            var doc    = uiDoc.Document;
            var filter = new ExtensibleStorageFilter(Mapper.GetGuid <Task>());
            var elems  = new FilteredElementCollector(doc, commandData.View.Id)
                         .WherePasses(filter)
                         .ToElementIds();

            uiDoc.Selection.SetElementIds(elems);
            return(Result.Succeeded);
        }
Esempio n. 3
0
        public static void Set(Application app, Document doc, string name, SlackSettings s)
        {
            ExtensibleStorageFilter f
                = new ExtensibleStorageFilter(
                    ExtensibleStorage.SettingsSchema.SchemaGuid);

            DataStorage dataStorage
                = new FilteredElementCollector(doc)
                .OfClass(typeof(DataStorage))
                .WherePasses(f)
                .Where<Element>(e => name.Equals(e.Name))
                .FirstOrDefault<Element>() as DataStorage;

            Entity entity;
            if (dataStorage == null)
            {
                using (Transaction t = new Transaction(doc, "Create settings schema"))
                {
                    t.Start();

                    dataStorage = DataStorage.Create(doc);
                    dataStorage.Name = name;

                    entity = new Entity(ExtensibleStorage.SettingsSchema.InitializeSchema());
                    dataStorage.SetEntity(entity);

                    t.Commit();
                }
            }

            Transaction updateSettings = new Transaction(doc, "Update settings");
            updateSettings.Start();
            entity = dataStorage.GetEntity(ExtensibleStorage.SettingsSchema.InitializeSchema());

            entity.Set("slackOn", s.slackOn);
            entity.Set("slackWSWarn", s.slackWSWarn);
            entity.Set("slackModelWarn", s.slackModelWarn);
            entity.Set("slackBPWarn", s.slackBPWarn);
            entity.Set("slackWSInfo", s.slackWSInfo);
            entity.Set("slackModelInfo", s.slackModelInfo);
            entity.Set("slackBPInfo", s.slackBPInfo);
            entity.Set("slackExtraTrackPin", s.slackExtraTrackPin);
            entity.Set("giphySet", s.giphySet);
            entity.Set("tidySet", s.tidySet);
            entity.Set("slackToken", s.slackToken);
            entity.Set("slackCh", s.slackCh);
            entity.Set("slackChId", s.slackChId);

            dataStorage.SetEntity(entity);
            updateSettings.Commit();
        }
        /// <summary>
        /// Add the updater to watch for formatted schedule changes.
        /// </summary>
        /// <param name="formatter">The schedule formatter.</param>
        private static void AddUpdater(ScheduleFormatter formatter)
        {
            // If not registered, register the updater
            if (!UpdaterRegistry.IsUpdaterRegistered(formatter.GetUpdaterId()))
            {
                // Filter on: schedule type, and extensible storage entity of the target schema
                ElementClassFilter      classFilter = new ElementClassFilter(typeof(ViewSchedule));
                ExtensibleStorageFilter esFilter    = new ExtensibleStorageFilter(formatter.Schema.GUID);
                LogicalAndFilter        filter      = new LogicalAndFilter(classFilter, esFilter);

                // Register and add trigger for updater.
                UpdaterRegistry.RegisterUpdater(formatter);
                UpdaterRegistry.AddTrigger(formatter.GetUpdaterId(), filter, Element.GetChangeTypeAny());
            }
        }
Esempio n. 5
0
        public void Execute(UpdaterData data)
        {
            Autodesk.Revit.DB.Document doc = data.GetDocument();
            Schema sch = Schema.Lookup(new Guid("2B195204-1C04-4538-8881-AD22FA697B41"));
            ExtensibleStorageFilter  filter    = new ExtensibleStorageFilter(new Guid("2B195204-1C04-4538-8881-AD22FA697B41"));
            FilteredElementCollector collector = new FilteredElementCollector(doc);
            IList <Element>          tags      = collector.WherePasses(filter).ToElements();

            foreach (Element tag in tags)
            {
                Entity retrievedEntity = tag.GetEntity(sch);
                if (retrievedEntity.Get <ElementId>("SelElmIds") == ElementId.InvalidElementId)
                {
                    doc.Delete(tag.Id);
                }
            }
        }
Esempio n. 6
0
        public static void Load(Document doc)
        {
            ExtensibleStorageFilter fi
                = new ExtensibleStorageFilter(
                      ExtensibleStorage.SettingsSchema.SchemaGuid);

            DataStorage dataStorage
                = new FilteredElementCollector(doc)
                  .OfClass(typeof(DataStorage))
                  .WherePasses(fi)
                  .Where <Element>(el => Variables.defNameSettings.Equals(el.Name))
                  .FirstOrDefault <Element>() as DataStorage;

            if (dataStorage != null)
            {
                Entity entity = dataStorage.GetEntity(Schema.Lookup(ExtensibleStorage.SettingsSchema.SchemaGuid));
                Variables.slackOn            = entity.Get <bool>("slackOn");
                Variables.slackWSWarn        = entity.Get <bool>("slackWSWarn");
                Variables.slackModelWarn     = entity.Get <bool>("slackModelWarn");
                Variables.slackBPWarn        = entity.Get <bool>("slackBPWarn");
                Variables.slackWSInfo        = entity.Get <bool>("slackWSInfo");
                Variables.slackModelInfo     = entity.Get <bool>("slackModelInfo");
                Variables.slackBPInfo        = entity.Get <bool>("slackBPInfo");
                Variables.slackExtraTrackPin = entity.Get <bool>("slackExtraTrackPin");
                Variables.slackCh            = entity.Get <string>("slackCh");
                Variables.slackChId          = entity.Get <string>("slackChId");
                Variables.giphySet           = entity.Get <int>("giphySet");
                Variables.tidySet            = entity.Get <int>("tidySet");
                Variables.slackToken         = entity.Get <string>("slackToken");
            }
            else
            {
                Variables.slackCh    = null;
                Variables.slackChId  = null;
                Variables.slackOn    = false;
                Variables.slackToken = null;
            }
        }
Esempio n. 7
0
        public static void Load(Document doc)
        {
            ExtensibleStorageFilter fi
                  = new ExtensibleStorageFilter(
                      ExtensibleStorage.SettingsSchema.SchemaGuid);

            DataStorage dataStorage
                = new FilteredElementCollector(doc)
                .OfClass(typeof(DataStorage))
                .WherePasses(fi)
                .Where<Element>(el => Variables.defNameSettings.Equals(el.Name))
                .FirstOrDefault<Element>() as DataStorage;

            if (dataStorage != null)
            {
                Entity entity = dataStorage.GetEntity(Schema.Lookup(ExtensibleStorage.SettingsSchema.SchemaGuid));
                Variables.slackOn = entity.Get<bool>("slackOn");
                Variables.slackWSWarn = entity.Get<bool>("slackWSWarn");
                Variables.slackModelWarn = entity.Get<bool>("slackModelWarn");
                Variables.slackBPWarn = entity.Get<bool>("slackBPWarn");
                Variables.slackWSInfo= entity.Get<bool>("slackWSInfo");
                Variables.slackModelInfo = entity.Get<bool>("slackModelInfo");
                Variables.slackBPInfo = entity.Get<bool>("slackBPInfo");
                Variables.slackExtraTrackPin = entity.Get<bool>("slackExtraTrackPin");
                Variables.slackCh = entity.Get<string>("slackCh");
                Variables.slackChId = entity.Get<string>("slackChId");
                Variables.giphySet = entity.Get<int>("giphySet");
                Variables.tidySet = entity.Get<int>("tidySet");
                Variables.slackToken = entity.Get<string>("slackToken");
            }
            else
            {
                Variables.slackCh = null;
                Variables.slackChId = null;
                Variables.slackOn = false;
                Variables.slackToken = null;
            }
        }
        /// <summary>
        /// Retrieve an existing named Guid
        /// in the specified Revit document or
        /// optionally create and return a new
        /// one if it does not yet exist.
        /// </summary>
        public static bool Get(
            Document doc,
            string name,
            out Guid guid,
            bool create = true)
        {
            bool rc = false;

            guid = Guid.Empty;

            // Retrieve a DataStorage element with our
            // extensible storage entity attached to it
            // and the specified element name. Only zero
            // or one should exist.

            ExtensibleStorageFilter f
                = new ExtensibleStorageFilter(
                      JtNamedGuidStorageSchema.SchemaGuid);

            DataStorage dataStorage
                = new FilteredElementCollector(doc)
                  .OfClass(typeof(DataStorage))
                  .WherePasses(f)
                  .Where <Element>(e => name.Equals(e.Name))
                  .FirstOrDefault <Element>() as DataStorage;

            if (dataStorage == null)
            {
                if (create)
                {
                    using (Transaction t = new Transaction(
                               doc, "Create named Guid storage"))
                    {
                        t.Start();

                        // Create named data storage element

                        dataStorage      = DataStorage.Create(doc);
                        dataStorage.Name = name;

                        // Create entity to store the Guid data

                        Entity entity = new Entity(
                            JtNamedGuidStorageSchema.GetSchema());

                        entity.Set("Guid", guid = Guid.NewGuid());

                        // Set entity to the data storage element

                        dataStorage.SetEntity(entity);

                        t.Commit();

                        rc = true;
                    }
                }
            }
            else
            {
                // Retrieve entity from the data storage element.

                Entity entity = dataStorage.GetEntity(
                    JtNamedGuidStorageSchema.GetSchema(false));

                Debug.Assert(entity.IsValid(),
                             "expected a valid extensible storage entity");

                if (entity.IsValid())
                {
                    guid = entity.Get <Guid>("Guid");

                    rc = true;
                }
            }
            return(rc);
        }
        /// <summary>
        /// Retrieve an existing named Guid 
        /// in the specified Revit document or
        /// optionally create and return a new
        /// one if it does not yet exist.
        /// </summary>
        public static bool Get(
            Document doc,
            string name,
            out Guid guid,
            bool create = true)
        {
            bool rc = false;

              guid = Guid.Empty;

              // Retrieve a DataStorage element with our
              // extensible storage entity attached to it
              // and the specified element name. Only zero
              // or one should exist.

              ExtensibleStorageFilter f
            = new ExtensibleStorageFilter(
              JtNamedGuidStorageSchema.SchemaGuid );

              DataStorage dataStorage
            = new FilteredElementCollector( doc )
              .OfClass( typeof( DataStorage ) )
              .WherePasses( f )
              .Where<Element>( e => name.Equals( e.Name ) )
              .FirstOrDefault<Element>() as DataStorage;

              if( dataStorage == null )
              {
            if( create )
            {
              using( Transaction t = new Transaction(
            doc, "Create named Guid storage" ) )
              {
            t.Start();

            // Create named data storage element

            dataStorage = DataStorage.Create( doc );
            dataStorage.Name = name;

            // Create entity to store the Guid data

            Entity entity = new Entity(
              JtNamedGuidStorageSchema.GetSchema() );

            entity.Set( "Guid", guid = Guid.NewGuid() );

            // Set entity to the data storage element

            dataStorage.SetEntity( entity );

            t.Commit();

            rc = true;
              }
            }
              }
              else
              {
            // Retrieve entity from the data storage element.

            Entity entity = dataStorage.GetEntity(
              JtNamedGuidStorageSchema.GetSchema( false ) );

            Debug.Assert( entity.IsValid(),
              "expected a valid extensible storage entity" );

            if( entity.IsValid() )
            {
              guid = entity.Get<Guid>( "Guid" );

              rc = true;
            }
              }
              return rc;
        }