Пример #1
0
        private void comboBoxViewType_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (null != comboBoxViewType.SelectedItem)
            {
                ViewTypeInfo selectedInfo = (ViewTypeInfo)comboBoxViewType.SelectedItem;
                selectedViewType   = selectedInfo.ViewTypeEnum;
                selectedViewFamily = selectedInfo.ViewFamilyEnum;

                if (null != comboBoxSource.SelectedItem && null != comboBoxRecipient.SelectedItem)
                {
                    ModelInfo sModelInfo = (ModelInfo)comboBoxSource.SelectedItem;
                    ModelInfo rModelInfo = (ModelInfo)comboBoxRecipient.SelectedItem;
                    if (sModelInfo.ModelId == rModelInfo.ModelId)
                    {
                        labelSameModel.Visibility = System.Windows.Visibility.Visible;
                    }
                    else
                    {
                        labelSameModel.Visibility = System.Windows.Visibility.Hidden;
                        if (selectedViewType == ViewType.ThreeD)
                        {
                            DisplayCameraView(sModelInfo, rModelInfo);
                        }
                        else
                        {
                            DisplayPlanView(sModelInfo, rModelInfo, selectedViewType);
                        }
                    }
                }
            }
        }
Пример #2
0
        internal static ElementId GetViewTypeIdByViewType(Document doc, ViewFamily viewFamily, string typeName)
        {
            ElementId elementId;

            using (FilteredElementCollector fec = new FilteredElementCollector(doc).OfClass(typeof(ViewFamilyType)))
            {
                elementId = fec.Cast <ViewFamilyType>().Where(x => x.ViewFamily == viewFamily && x.Name == typeName).FirstOrDefault().Id;
            }
            return(elementId);
        }
Пример #3
0
        private ViewFamilyType GetViewFamilyType(Document doc, ViewFamily viewFamily)
        {
            ViewFamilyType           vFamilyType     = null;
            FilteredElementCollector collector       = new FilteredElementCollector(doc);
            List <ViewFamilyType>    viewFamilyTypes = collector.OfClass(typeof(ViewFamilyType)).ToElements().Cast <ViewFamilyType>().ToList();
            var vTypes = from vType in viewFamilyTypes where vType.ViewFamily == viewFamily select vType;

            if (vTypes.Count() > 0)
            {
                vFamilyType = vTypes.First();
            }
            return(vFamilyType);
        }
Пример #4
0
        /// <summary>
        /// 根据视图类型选择一个视图类型:楼层平面、天花板平面、面积平面等
        /// </summary>
        /// <param name="viewFamily"></param>
        /// <returns></returns>
        public ViewFamilyType SelectViewFamilyType(ViewFamily viewFamily)
        {
            ViewFamilyType           viewType  = null;
            FilteredElementCollector collector = new FilteredElementCollector(doc);

            collector.OfClass(typeof(ViewFamilyType));
            foreach (ViewFamilyType item in collector)
            {
                if (item.ViewFamily == viewFamily)
                {
                    viewType = item;
                }
            }
            return(viewType);
        }
Пример #5
0
        private ElementId GetViewFamilyTypeId(Document doc, ViewFamily viewFamily)
        {
            /*
             * This method return first view family type id
             */

            IEnumerable <ViewFamilyType> viewFamilyTypes
                = from elem in new FilteredElementCollector(doc)
                  .OfClass(typeof(ViewFamilyType))
                  let type = elem as ViewFamilyType
                             where type.ViewFamily == viewFamily
                             select type;

            return(viewFamilyTypes.First().Id);
        }
Пример #6
0
        private static ElementId GetViewFamilyId(Document doc, ViewFamily viewFamilyType)
        {
            using (var collector = new FilteredElementCollector(doc)) {
                collector.OfClass(typeof(ViewFamilyType));
                foreach (var e in collector)
                {
                    var vft = (ViewFamilyType)e;
                    if (vft.ViewFamily == viewFamilyType)
                    {
                        return(vft.Id);
                    }
                }
            }

            return(null);
        }
Пример #7
0
        //*********************************************** ViewFamilyTypes ********************************************************************//
        public List <ViewFamilyType> GetViewFamilyType(Document doc, ViewFamily viewFamily)
        {
            FilteredElementCollector collector            = new FilteredElementCollector(doc);
            ICollection <Element>    viewFamilyTypes      = collector.OfClass(typeof(ViewFamilyType)).ToElements();
            List <ViewFamilyType>    List_viewFamilyTypes = new List <ViewFamilyType>();

            foreach (ViewFamilyType w in viewFamilyTypes)
            {
                if (w.ViewFamily == viewFamily)
                {
                    List_viewFamilyTypes.Add(w);
                }
            }

            return(List_viewFamilyTypes);
        }
        ElementId GetViewTypeIdByViewType(
            ViewFamily viewFamily)
        {
            FilteredElementCollector fec
                = new FilteredElementCollector(
                      m_app.ActiveUIDocument.Document);

            fec.OfClass(typeof(ViewFamilyType));

            foreach (ViewFamilyType e in fec)
            {
                System.Diagnostics.Debug.WriteLine(e.Name);

                if (e.ViewFamily == viewFamily)
                {
                    return(e.Id);
                }
            }
            return(null);
        }
Пример #9
0
        /// <summary>
        /// Get the default family type for creating ViewPlans.
        /// </summary>
        /// <param name="doc"></param>
        /// <returns></returns>
        public static ElementId GetViewPlanTypeId(Document doc)
        {
            if (m_ViewPlanTypeIdInitialized == false)
            {
                ViewFamily viewFamilyToUse = (doc.Application.Product == ProductType.Structure) ? ViewFamily.StructuralPlan : ViewFamily.FloorPlan;

                m_ViewPlanTypeIdInitialized = true;
                FilteredElementCollector collector       = new FilteredElementCollector(doc);
                ICollection <Element>    viewFamilyTypes = collector.OfClass(typeof(ViewFamilyType)).ToElements();
                foreach (Element element in viewFamilyTypes)
                {
                    ViewFamilyType viewFamilyType = element as ViewFamilyType;
                    if (viewFamilyType.ViewFamily == viewFamilyToUse)
                    {
                        m_ViewPlanTypeId = viewFamilyType.Id;
                        break;
                    }
                }
            }
            return(m_ViewPlanTypeId);
        }
Пример #10
0
        public static void CreateViews(Document curDoc, string viewType, string viewFamilyType, string viewTemplate, string scopeBox, string designOpt, List <Level> m_levels)
        {
            //creates plan or RCP views for each floor level in the supplied model

            //set view type
            ViewFamily viewTypeSetting = default(ViewFamily);

            if (viewType == "CeilingPlan")
            {
                viewTypeSetting = ViewFamily.CeilingPlan;
            }
            else if (viewType == "AreaPlan")
            {
                viewTypeSetting = ViewFamily.AreaPlan;
            }
            else if (viewType == "StructuralPlan")
            {
                viewTypeSetting = ViewFamily.StructuralPlan;
            }
            else
            {
                viewTypeSetting = ViewFamily.FloorPlan;
            }

            //get list of view types
            List <ViewFamilyType> m_vt = new List <ViewFamilyType>();

            m_vt = mFunctions.getViewTypes(curDoc);

            //success and error list
            List <string> m_s = new List <string>();
            List <string> m_e = new List <string>();

            //new transaction
            using (Transaction t = new Transaction(curDoc, "Create views")) {
                //start transaction
                if (t.Start() == TransactionStatus.Started)
                {
                    //create a plan or RCP for specified levels
                    foreach (Level lev in m_levels)
                    {
                        //views for plan only
                        foreach (ViewFamilyType vt in m_vt)
                        {
                            if (vt.Name == viewFamilyType)
                            {
                                try {
                                    //create the plan view
                                    ViewPlan m_fp = null;
                                    m_fp = ViewPlan.Create(curDoc, vt.Id, lev.Id);

                                    //rename the view
                                    m_fp.Name = lev.Name.ToUpper() + " " + vt.Name.ToUpper();
                                    m_s.Add(lev.Name.ToUpper() + " " + vt.Name.ToUpper());

                                    //modify the view as needed
                                    //-----------------------------------------------------
                                    //add view template to view
                                    if (viewTemplate != "None")
                                    {
                                        m_fp.ViewTemplateId = mFunctions.getViewTemplateID(viewTemplate, curDoc);
                                    }

                                    //add scope box to view
                                    if (scopeBox != "None")
                                    {
                                        Parameter curParam = null;
                                        curParam = m_fp.get_Parameter(BuiltInParameter.VIEWER_VOLUME_OF_INTEREST_CROP);

                                        if (curParam.Definition.Name.ToString() == "Scope Box")
                                        {
                                            //check if scope box exist
                                            if (mFunctions.doesScopeBoxExist(scopeBox, curDoc))
                                            {
                                                try {
                                                    //set scope box value
                                                    curParam.Set(mFunctions.getScopeBoxID(scopeBox, curDoc));
                                                } catch (Exception ex) {
                                                    Debug.Print(ex.Message);
                                                }
                                            }
                                            else
                                            {
                                                Debug.Print("SCOPE BOX DOESN'T EXIST");
                                            }
                                        }
                                    }

                                    //add design option to view
                                    if (designOpt != "None")
                                    {
                                        //assign selected design option to view
                                        DesignOption curDesignOption = mFunctions.getDesignOptionByName(curDoc, designOpt);

                                        Parameter desOptParam = m_fp.get_Parameter(BuiltInParameter.VIEWER_OPTION_VISIBILITY);

                                        try {
                                            desOptParam.Set(curDesignOption.Id);
                                        } catch (Exception ex) {
                                            TaskDialog.Show("error", "could not set design option paramerter");
                                        }
                                    }
                                } catch (Exception ex) {
                                    m_e.Add(ex.Message + ": " + lev.Name.ToUpper() + " " + vt.Name.ToUpper());
                                }
                            }
                        }
                    }

                    //report views created
                    if (m_s.Count > 0)
                    {
                        using (TaskDialog m_td = new TaskDialog("Success")) {
                            m_td.MainInstruction = "Created views:";
                            foreach (string x_loopVariable in m_s)
                            {
                                m_td.MainContent += x_loopVariable + Constants.vbCr;
                            }
                            m_td.Show();
                        }
                    }

                    //report errors if any
                    if (m_e.Count > 0)
                    {
                        using (TaskDialog m_td = new TaskDialog("Errors")) {
                            m_td.MainInstruction = "Issues with views:";
                            foreach (string x_loopVariable in m_e)
                            {
                                m_td.MainContent += x_loopVariable + Constants.vbCr;
                            }
                            m_td.Show();
                        }
                    }

                    //commit
                    t.Commit();
                }
            }
        }
Пример #11
0
 public static ViewFamilyType ViewFamilyType(this Document document, ViewFamily viewFamily)
 {
     return(new FilteredElementCollector(document).OfClass(typeof(ViewFamilyType)).Cast <ViewFamilyType>().FirstOrDefault <ViewFamilyType>(x => viewFamily == x.ViewFamily));
 }
Пример #12
0
 public ViewTypeInfo(string name, ViewType vType, ViewFamily vFamily)
 {
     ViewTypeName   = name;
     ViewTypeEnum   = vType;
     ViewFamilyEnum = vFamily;
 }
Пример #13
0
        public ViewPlan setup_view(ViewType vt)
        {
            IList <Level> levels = new FilteredElementCollector(doc).OfClass(typeof(Level)).Cast <Level>().OrderBy(l => l.Elevation).ToList();

            Transaction trans = new Transaction(doc);
            ViewFamily  vf    = ViewFamily.Invalid;

            if (vt == ViewType.FloorPlan)
            {
                vf = ViewFamily.StructuralPlan;
            }
            else if (vt == ViewType.CeilingPlan)
            {
                vf = ViewFamily.CeilingPlan;
            }

            ViewFamilyType FviewFamily = new FilteredElementCollector(doc)
                                         .OfClass(typeof(ViewFamilyType))
                                         .Cast <ViewFamilyType>()
                                         .First(x => x.ViewFamily == vf);

            ViewPlan view = new FilteredElementCollector(doc)
                            .OfClass(typeof(ViewPlan))
                            .Cast <ViewPlan>().FirstOrDefault(q
                                                              => q.Name == level.Name && q.ViewType == vt);

            // FIXME : need to filter by vf

            using (trans = new Transaction(doc))
            {
                trans.Start("View plans");
                if (view is null)
                {
                    view = ViewPlan.Create(doc, FviewFamily.Id, level.Id);
                }
                trans.Commit();
            }

            if (vt == ViewType.FloorPlan)
            {
                FilteredElementCollector col_ = new FilteredElementCollector(doc);
                col_.OfClass(typeof(FamilySymbol));
                col_.OfCategory(BuiltInCategory.OST_TitleBlocks);

                FamilySymbol fs = col_.FirstElement() as FamilySymbol;


                using (trans = new Transaction(doc))
                {
                    trans.Start("Sheet");

                    Family tf = null;
                    //Choose appropriate path
                    string tfamilyPath = @"C:\Users\John\Documents\owncloud\revit\Families\11x8 title block.rfa";
                    doc.LoadFamily(tfamilyPath, out tf);

                    // Get the available title block from document
                    FamilySymbol             FS    = null;
                    FilteredElementCollector col__ = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_TitleBlocks);
                    Element TB = null;
                    foreach (Element e in col__)
                    {
                        if (e.Name.Contains("11x8"))
                        {
                            TB = e;
                        }
                    }

                    ViewSheet viewSheet = ViewSheet.Create(doc, TB.Id);

                    UV location = new UV((viewSheet.Outline.Max.U - viewSheet.Outline.Min.U) / 2,
                                         (viewSheet.Outline.Max.V - viewSheet.Outline.Min.V) / 2);

                    //viewSheet.AddView(view3D, location);
                    Viewport.Create(doc, viewSheet.Id, view.Id, new XYZ(location.U, location.V, 0));
                    viewSheet.Name = level.Name;
                    trans.Commit();
                }
            }
            return(view);
        }