/// <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);
        }
Beispiel #3
0
        /// <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();
            }
        }