/// <summary> /// Get the BarBase list from Childern of MountingPanel /// - BusBar /// - Duct /// - MountingRail /// </summary> /// <param name="mountingPanel"></param> /// <returns></returns> private IEnumerable <BarBase> GetLayoutSpaceBarBaseObjects(Placement3D parentPlacement3D) { List <BarBase> toReturn = new List <BarBase>(); if (parentPlacement3D.Children.Length == 0) { return(toReturn); } var barBaseList = parentPlacement3D.Children.OfType <BarBase>(); // Get the BarBase among Children if (barBaseList != null && barBaseList.Count() > 0) { toReturn.AddRange(barBaseList); } else { // Get the BarBase from Children of a Child foreach (Placement3D placement3D in parentPlacement3D.Children) { toReturn.AddRange(GetLayoutSpaceBarBaseObjects(placement3D)); } } return(toReturn); }
/// <summary> /// Get All Mounting Panels from a InstallationSpace /// </summary> /// <param name="installationSpace"></param> /// <returns></returns> private IEnumerable <MountingPanel> GetMountingPanels(Placement3D parentPlacement3D) { List <MountingPanel> toReturn = new List <MountingPanel>(); if (parentPlacement3D.Children.Length == 0) { return(toReturn); } var mountingPanels = parentPlacement3D.Children.OfType <MountingPanel>(); // 01. Get the MountingPanel among Children if (mountingPanels != null && mountingPanels.Count() > 0) { toReturn.AddRange(mountingPanels); } // 02. Get the MountingPanel from Children of a Child foreach (Placement3D placement3D in parentPlacement3D.Children) { // Skip for MountingPanel itself if (placement3D is MountingPanel) { continue; } toReturn.AddRange(GetMountingPanels(placement3D)); } return(toReturn); }
/// <summary> /// 전달된 Placement가 있는 페이지를 화면에 표시한다. /// </summary> /// <param name="placement">화면에 표시할 Placement</param> public static void OpenInstallationSpaceWithPlacement3D(Placement3D placement3D) { if (placement3D == null) { throw new ArgumentNullException(nameof(placement3D)); } using (Edit3D editor = new Edit3D()) { editor.OpenInstallationSpaceWithPlacement3D(placement3D); RefreshDrawing(); } }