예제 #1
0
        private static Result createReshoringLayoutSheets(UIDocument uiDoc)
        {
            Document _doc = uiDoc.Document;

            string _titleblockName           = "E1 30 x 42 Horizontal: E1 30x42 Horizontal";
            XYZ    _columnScheduleBottomLeft = new XYZ(2.3354130772204, 2.39482128194158, 0);
            XYZ    _viewCenter = new XYZ(1.45453036348288, 1.18116967618813, 0.871414246948733);
            XYZ    _levelScheduleBottomLeft = new XYZ(0.156336990263879, 2.37688649933288, 0);

            var _levels = Getters.GetLevels(_doc);

            Level _levelAbove  = null;
            Level _topLevel    = _levels.FirstOrDefault();
            Level _bottomLevel = _levels.LastOrDefault();

            List <Tuple <ViewSheet, View> > _sheetsWithViews = new List <Tuple <ViewSheet, View> >();


            foreach (Level _level in _levels)
            {
                if (_levelAbove == null)
                {
                    _levelAbove = _level;
                }

                BoundedViewCreator _boundedViewCreator = new BoundedViewCreator(_level, null, null);
                SheetCreator       _sheetCreator       = new SheetCreator(_doc);
                string             _viewName           = _boundedViewCreator.GetViewName(string.Empty, "FP");
                ViewSheet          _viewSheet          = _sheetCreator.CreateSheet(_titleblockName, _viewName, _viewName);
                ViewPlan           _viewPlan           = _boundedViewCreator.CreateViewPlan(80);
                _sheetsWithViews.Add(new Tuple <ViewSheet, View>(_viewSheet, _viewPlan));

                ViewSchedule          _columnSchedule = ScheduleCreator.CreateLayoutColumnSchedule(_doc, _level.Name, " Reshores");
                ScheduleSheetInstance _columnScheduleSheetInstance = ScheduleSheetInstance.Create(_doc, _viewSheet.Id, _columnSchedule.Id, _columnScheduleBottomLeft);

                ViewSchedule          _levelSchedule = ScheduleCreator.CreateLayoutLoadSchedule(_doc, _level.Name, " Loads");
                ScheduleSheetInstance _levelScheduleSheetInstance = ScheduleSheetInstance.Create(_doc, _viewSheet.Id, _levelSchedule.Id, _levelScheduleBottomLeft);

                _levelAbove = _level;
            }

            _doc.Regenerate();

            FamilySymbol _tagSymbol = new FilteredElementCollector(_doc)
                                      .OfCategory(BuiltInCategory.OST_MultiCategoryTags)
                                      .OfClass(typeof(FamilySymbol)).OfType <FamilySymbol>()
                                      .FirstOrDefault(p => p.FamilyName.Contains("Mark"));


            foreach (var _sheetWithView in _sheetsWithViews)
            {
                DimensionCreator.CreateDimensions(_sheetWithView.Item2);
                TagCreator.CreateTags(_sheetWithView.Item2, _tagSymbol);
                Viewport.Create(_doc, _sheetWithView.Item1.Id, _sheetWithView.Item2.Id, _viewCenter);
            }

            return(Result.Succeeded);
        }
예제 #2
0
        public void SetUp()
        {
            fontSettings  = new FontSettings();
            imageSettings = new ImageSettings();
            filesSettings = new FilesSettings();
            var imageHolder = new PictureBoxImageHolder();

            imageHolder.RecreateImage(imageSettings);
            tagCreator = new TagCreator(fontSettings, new SpiralCloudLayouter(imageSettings),
                                        new TextAnalyzer(filesSettings), imageHolder);

            filesSettings.TextFilePath        = @"..\..\testTextAnalyzer.txt";
            filesSettings.BoringWordsFilePath = @"..\..\boring words.txt";
        }
예제 #3
0
        public void SetUp()
        {
            imageSettings = new ImageSettings();
            var imageHolder = new PictureBoxImageHolder();

            imageHolder.RecreateImage(imageSettings);
            var colorSettingsProvider = new ColorSettingsProvider();
            var filesSettings         = new FilesSettings();

            filesSettings.TextFilePath        = "..\\..\\testTextAnalyzer.txt";
            filesSettings.BoringWordsFilePath = "..\\..\\boring words.txt";
            var textAnalyzer = new TextAnalyzer(filesSettings);

            fontSettings = new FontSettings();
            var tagCreator = new TagCreator(fontSettings, new SpiralCloudLayouter(imageSettings), textAnalyzer,
                                            imageHolder);

            painter = new Painter(colorSettingsProvider, imageHolder, tagCreator);
        }
예제 #4
0
파일: Painter.cs 프로젝트: elizShtol/fp
 public Painter(ColorSettingsProvider colorSettingsProvider, IImageHolder imageHolder, TagCreator tagCreator)
 {
     this.imageHolder           = imageHolder;
     this.colorSettingsProvider = colorSettingsProvider;
     this.tagCreator            = tagCreator;
 }
예제 #5
0
파일: Gradient.cs 프로젝트: elizShtol/fp
 public Gradient(TagCreator tagCreator)
 {
     this.tagCreator = tagCreator;
 }
예제 #6
0
        private static Result createPourSheets(UIDocument uiDoc)
        {
            //ToDo: these might be good as settings in a future UI
            string _titleblockName = "E1 30 x 42 Horizontal: E1 30x42 Horizontal";
            //string _elementName = "C-2"; // "EllisShore_LumberWithClamps";
            //
            //int _3dViewScale = 48;
            //XYZ _3dViewportCenter = new XYZ(2.21129429621462, 0.656294714474886, 0);
            //
            //int _sectionViewScale = 32;
            //XYZ _sectionViewportCenter = new XYZ(0.7791340191012, 1.72774616204266, 0);

            int _floorplanViewScale      = 24;
            XYZ _floorplanViewportCenter = new XYZ(1.23473112570493, 1.15208223453682, 0);

            XYZ _columnScheduleBottomLeft = new XYZ(2.31721454780864, 2.37688649933288, 0);
            XYZ _levelScheduleBottomLeft  = new XYZ(0.156336990263879, 2.37688649933288, 0);

            Document _doc = uiDoc.Document;

            //Get a BoundedView3DDefinition for each Level - Scope Box in the project
            var _levels = Getters.GetLevels(_doc);

            var _scopeBoxes = Getters.GetScopeBoxes(_doc);

            var    _boundedViewCreators = new List <BoundedViewCreator>();
            double _extraExtents        = 0.5;

            foreach (Level _level in _levels)
            {
                Level _levelAbove = _levels.FirstOrDefault(p => p.Elevation > _level.Elevation);
                if (_levelAbove == null)
                {
                    continue;
                }

                foreach (Element _scopeBox in _scopeBoxes)
                {
                    BoundingBoxXYZ _scopeBoxBounds = _scopeBox.get_BoundingBox(null);
                    BoundingBoxXYZ _viewBounds     = new BoundingBoxXYZ
                    {
                        Min = new XYZ(
                            _scopeBoxBounds.Min.X - _extraExtents,
                            _scopeBoxBounds.Min.Y - _extraExtents,
                            _level.Elevation - _extraExtents),
                        Max = new XYZ(
                            _scopeBoxBounds.Max.X + _extraExtents,
                            _scopeBoxBounds.Max.Y + _extraExtents,
                            _levelAbove.Elevation + _extraExtents)
                    };

                    _boundedViewCreators.Add(new BoundedViewCreator(_level, _scopeBox, _viewBounds));
                }
            }

            //Generate Views, set their Boundaries & Names, Adjust Visiblity Graphics
            OverrideGraphicSettings _70Transparent = new OverrideGraphicSettings();

            _70Transparent.SetSurfaceTransparency(70);

            List <Tuple <ElementId, string, List <View> > > _createdSheetIdViewIdSets = new List <Tuple <ElementId, string, List <View> > >();

            foreach (var _boundedViewCreator in _boundedViewCreators)
            {
                SheetCreator _sheetCreator = new SheetCreator(_doc);


                //Create Sheet
                string    _pourName  = _boundedViewCreator.GetViewName(string.Empty, string.Empty);
                ViewSheet _viewSheet = _sheetCreator.CreateSheet(_titleblockName, _pourName, _pourName);

                ////Create 3D View
                //View3D _3DView = _boundedViewCreator.CreateView3D(_3dViewScale);
                //_3DView.SetCategoryHidden(new ElementId(BuiltInCategory.OST_VolumeOfInterest), true);
                //_3DView.SetCategoryOverrides(new ElementId(BuiltInCategory.OST_Floors), _70Transparent);

                //Create Floorplan View
                ViewPlan _floorPlanView = _boundedViewCreator.CreateViewPlan(_floorplanViewScale);
                _floorPlanView.SetCategoryHidden(new ElementId(BuiltInCategory.OST_VolumeOfInterest), true);
                _floorPlanView.SetCategoryOverrides(new ElementId(BuiltInCategory.OST_Floors), _70Transparent);

                ////Create Section View
                //ViewSection _sectionView = _boundedViewCreator.CreateViewSection(_sectionViewScale);
                //_sectionView.SetCategoryHidden(new ElementId(BuiltInCategory.OST_VolumeOfInterest), true);
                //_sectionView.SetCategoryOverrides(new ElementId(BuiltInCategory.OST_Floors), _70Transparent);

                //Create Schedules
                ViewSchedule          _columnSchedule = ScheduleCreator.CreatePourColumnSchedule(_doc, _pourName, " Reshores");
                ScheduleSheetInstance _columnScheduleSheetInstance = ScheduleSheetInstance.Create(_doc, _viewSheet.Id, _columnSchedule.Id, _columnScheduleBottomLeft);

                ViewSchedule          _levelSchedule = ScheduleCreator.CreatePourLoadSchedule(_doc, _boundedViewCreator.Level?.Name, " - " + _boundedViewCreator.ScopeBox?.Name + " Loads");
                ScheduleSheetInstance _levelScheduleSheetInstance = ScheduleSheetInstance.Create(_doc, _viewSheet.Id, _levelSchedule.Id, _levelScheduleBottomLeft);

                _createdSheetIdViewIdSets.Add(new Tuple <ElementId, string, List <View> >(
                                                  _viewSheet.Id,
                                                  _pourName,
                                                  new List <View> { /*_3DView,*/
                    _floorPlanView,                                 /*_sectionView*/
                }
                                                  ));
            }

            _doc.Regenerate();

            FamilySymbol _tagSymbol = new FilteredElementCollector(_doc)
                                      .OfCategory(BuiltInCategory.OST_MultiCategoryTags)
                                      .OfClass(typeof(FamilySymbol)).OfType <FamilySymbol>()
                                      .FirstOrDefault(p => p.FamilyName.Contains("Mark"));

            foreach (var _createdSheetIdViewIdSet in _createdSheetIdViewIdSets)
            {
                foreach (View _view in _createdSheetIdViewIdSet.Item3)
                {
                    if (_view == null)
                    {
                        continue;
                    }

                    //if (_view is View3D) Viewport.Create(_doc, _createdSheetIdViewIdSet.Item1, _view.Id, _3dViewportCenter);
                    else if (_view is ViewPlan)
                    {
                        DimensionCreator.CreateDimensions(_view);
                        TagCreator.CreateTags(_view, _tagSymbol);
                        Viewport.Create(_doc, _createdSheetIdViewIdSet.Item1, _view.Id, _floorplanViewportCenter);
                    }
                    //else if (_view is ViewSection) Viewport.Create(_doc, _createdSheetIdViewIdSet.Item1, _view.Id, _sectionViewportCenter);
                }
            }

            return(Result.Succeeded);
        }