public static object Wrap(Autodesk.Revit.DB.Panel ele, bool isRevitOwned) { if (AdaptiveComponentInstanceUtils.IsAdaptiveFamilySymbol(ele.Symbol)) { return(AdaptiveComponent.FromExisting(ele, isRevitOwned)); } return(CurtainPanel.FromExisting(ele, isRevitOwned)); }
/// <summary> ///get curtain panel from element /// </summary> /// <param name="panelElement"></param> internal static CurtainPanel ByElement(CurtainPanel panelElement) { var elementAsPanel = panelElement.InternalElement as Autodesk.Revit.DB.Panel; if (elementAsPanel == null) { throw new Exception("Curtain Panel should represent Revit panel"); } return(new CurtainPanel(elementAsPanel)); }
/// <summary> ///get curtain panel from element /// </summary> /// <param name="panelElement"></param> internal static CurtainPanel ByElement(CurtainPanel panelElement) { var elementAsPanel = panelElement.InternalElement as Autodesk.Revit.DB.Panel; if (elementAsPanel == null) { throw new Exception(Properties.Resources.CurtainPanelShouldRepresentRevitPanel); } return(new CurtainPanel(elementAsPanel)); }
public List <Element> GetPanels() { var panelIds = InternalCurtainGrid.GetPanelIds(); var panelEnum = panelIds.GetEnumerator(); var panels = new List <Element>(); for (; panelEnum.MoveNext();) { ElementId idPanel = panelEnum.Current; var panel = DocumentManager.Instance.CurrentDBDocument.GetElement(idPanel); if (!(panel is Panel)) { continue; } panels.Add(CurtainPanel.FromExisting(panel as Panel, true)); } return(panels); }
/// <summary> ///get all panels of curtain wall, system or slope glazing roof /// </summary> /// <param name="hostingElement"></param> public static CurtainPanel[] ByElement(Element hostingElement) { CurtainGridSet thisSet = CurtainGrid.AllCurtainGrids(hostingElement.InternalElement); var result = new List <CurtainPanel>(); var enumGrid = thisSet.GetEnumerator(); for (; enumGrid.MoveNext();) { var grid = (Autodesk.Revit.DB.CurtainGrid)enumGrid.Current; var ids = grid.GetPanelIds(); var idEnum = ids.GetEnumerator(); for (; idEnum.MoveNext();) { var idPanel = idEnum.Current; var panel = DocumentManager.Instance.CurrentDBDocument.GetElement(idPanel); result.Add(CurtainPanel.FromExisting(panel as Autodesk.Revit.DB.Panel, true)); } } return(result.ToArray()); }
public CurtainPanel[] SupportedPanels() { var elementAsMullion = InternalElement as Autodesk.Revit.DB.Mullion; if (elementAsMullion == null) { throw new Exception("Mullion should represent Revit's Mullion"); } var host = elementAsMullion.Host; //var hostingGrid = Panel.ByElement(UnknownElement.FromExisting(host)); var panels = CurtainPanel.ByElement(UnknownElement.FromExisting(host)); var result = new List <CurtainPanel>(); var thisCurve = this.LocationCurve; int numberPanels = panels.Length; for (int index = 0; index < numberPanels; index++) { var panelAtIndex = panels[index] as CurtainPanel; if (panelAtIndex == null) { continue; } var bounds = panelAtIndex.Boundaries; var enumBounds = bounds.GetEnumerator(); bool neighbor = false; for (; enumBounds.MoveNext() && !neighbor;) { var polycrv = enumBounds.Current as PolyCurve; if (polycrv == null) { continue; } var bndCrvs = polycrv.Curves(); var enumCrv = bndCrvs.GetEnumerator(); for (; enumCrv.MoveNext();) { var crv = enumCrv.Current as Autodesk.DesignScript.Geometry.Curve; if (crv == null) { continue; } var midPoint = crv.PointAtParameter(0.5); if (midPoint.DistanceTo(thisCurve) < 1.0e-7) { neighbor = true; break; } } } if (neighbor) { result.Add(panelAtIndex); } } return(result.ToArray()); }
/// <summary> ///get curtain panel from element /// </summary> /// <param name="panelElement"></param> internal static CurtainPanel ByElement(CurtainPanel panelElement) { var elementAsPanel = panelElement.InternalElement as Autodesk.Revit.DB.Panel; if (elementAsPanel == null) throw new Exception("Curtain Panel should represent Revit panel"); return new CurtainPanel(elementAsPanel); }
public static CurtainPanel Wrap(Autodesk.Revit.DB.Panel ele, bool isRevitOwned) { return(CurtainPanel.FromExisting(ele, isRevitOwned)); }