private DataStorage GetSettingsDataStorage(Document doc)
        {
            FilteredElementCollector collector = new FilteredElementCollector(doc);

            var dataStorages = collector.OfClass(typeof(DataStorage));

            foreach (DataStorage dataStorage in dataStorages)
            {
                Entity settingIdEntity = dataStorage.GetEntity(DataStorageUniqueIdSchema.GetSchema());

                if (!settingIdEntity.IsValid())
                {
                    continue;
                }

                var id = settingIdEntity.Get <Guid>("Id");

                if (!id.Equals(settingDsId))
                {
                    continue;
                }

                return(dataStorage);
            }

            return(null);
        }
        public void WriteSettings(Document doc, ProjectSettings settings)
        {
            var settingsDs = GetSettingsDataStorage(doc);

            if (settingsDs == null)
            {
                settingsDs = DataStorage.Create(doc);
            }

            Entity settingsEntity = new Entity(ProjectSettingsSchema.GetSchema());

            settingsEntity.Set("View3DTemplate", settings.View3DTemplate);
            settingsEntity.Set("ViewElTemplate", settings.ViewElTemplate);
            settingsEntity.Set("ViewPlTemplate", settings.ViewPlTemplate);
            settingsEntity.Set("ViewPaTemplate", settings.ViewPaTemplate);
            settingsEntity.Set("TemplateTemplate", settings.TemplateTemplate);
            settingsEntity.Set("HorizontalDimWa", settings.HorizontalDimWa);
            settingsEntity.Set("HeightDimWa", settings.HeightDimWa);

            /*settingsEntity.Set("Check3DView", settings.Check3DView);
             * settingsEntity.Set("CheckElev", settings.CheckElev);
             * settingsEntity.Set("CheckPlan", settings.CheckPlan);
             * settingsEntity.Set("CheckPart", settings.CheckPart);
             * settingsEntity.Set("CheckTemplate", settings.CheckTemplate);*/


            settingsEntity.Set("View3DTemplateFlr", settings.View3DTemplateFlr);
            settingsEntity.Set("ViewPlanTemplateFlr", settings.ViewPlanTemplateFlr);
            settingsEntity.Set("ViewJoistTemplateFlr", settings.ViewJoistTemplateFlr);
            settingsEntity.Set("ViewTrackTemplateFrl", settings.ViewTrackTemplateFrl);
            settingsEntity.Set("ViewPaTemplateFlr", settings.ViewPaTemplateFlr);
            settingsEntity.Set("TemplateTemplateFrl", settings.TemplateTemplateFrl);
            settingsEntity.Set("HorizontalDimFlr", settings.HorizontalDimFlr);
            settingsEntity.Set("VerticalDimFlr", settings.VerticalDimFlr);

            /*settingsEntity.Set("Check3DViewFlr", settings.Check3DViewFlr);
             * settingsEntity.Set("CheckPlanFlr", settings.CheckPlanFlr);
             * settingsEntity.Set("CheckJoistFlr", settings.CheckJoistFlr);
             * settingsEntity.Set("CheckTrackFlr", settings.CheckTrackFlr);
             * settingsEntity.Set("CheckPartFlr", settings.CheckPartFlr);
             * settingsEntity.Set("CheckTemplateFlr", settings.CheckTemplateFlr);*/


            Entity idEntity = new Entity(DataStorageUniqueIdSchema.GetSchema());

            idEntity.Set("Id", settingDsId);

            settingsDs.SetEntity(idEntity);
            settingsDs.SetEntity(settingsEntity);
        }