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); } } } } }
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); }
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); }
/// <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); }
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); }
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); }
//*********************************************** 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); }
/// <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); }
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(); } } }
public static ViewFamilyType ViewFamilyType(this Document document, ViewFamily viewFamily) { return(new FilteredElementCollector(document).OfClass(typeof(ViewFamilyType)).Cast <ViewFamilyType>().FirstOrDefault <ViewFamilyType>(x => viewFamily == x.ViewFamily)); }
public ViewTypeInfo(string name, ViewType vType, ViewFamily vFamily) { ViewTypeName = name; ViewTypeEnum = vType; ViewFamilyEnum = vFamily; }
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); }