コード例 #1
0
        private void performShow()
        {
            try
            {
                Autodesk.Revit.DB.ElementId toShow = Autodesk.Revit.DB.ElementId.InvalidElementId;

                Models.ClearWidth cw = treeView1.SelectedNode.Tag as Models.ClearWidth;
                if (cw != null)
                {
                    toShow = cw.Id;
                }

                Models.Node node = treeView1.SelectedNode.Tag as Models.Node;
                if (node != null)
                {
                    toShow = node.RoomId;
                }

                if (toShow == Autodesk.Revit.DB.ElementId.InvalidElementId)
                {
                    return;
                }
                _controller.Show(toShow);
            }
            catch (Exception ex)
            {
                Autodesk.Revit.UI.TaskDialog td = new Autodesk.Revit.UI.TaskDialog("Error");
                td.MainContent     = "Unexpected error: " + ex.GetType().Name + ":  " + ex.Message;
                td.ExpandedContent = ex.StackTrace;
                td.Show();
            }
        }
コード例 #2
0
        private void reCheckMaxPath()
        {
            if (treeView1.Nodes.Count == 0)
            {
                return;
            }

            UpdateStatus("Checking max travel...");
            foreach (TreeNode room in treeView1.Nodes[0].Nodes)
            {
                Models.Node roomNode = room.Tag as Models.Node;
                if (roomNode == null)
                {
                    continue;
                }

                // find the minimum
                double min         = 9999;
                int    childRoutes = 0;
                foreach (TreeNode child in room.Nodes)
                {
                    Models.Route r = child.Tag as Models.Route;
                    if (r != null)
                    {
                        childRoutes++;
                        if (r.TotalDistance < min)
                        {
                            min = r.TotalDistance;
                        }

                        if (r.TotalDistance > _maxTravel)
                        {
                            child.BackColor = System.Drawing.Color.Yellow;
                        }
                        else
                        {
                            child.BackColor = Color.White;
                        }
                    }
                }

                if ((childRoutes > 0))
                {
                    room.Text = roomNode.Name + " Max Travel Dist: " + min.ToString("F1");
                    if (min > _maxTravel)
                    {
                        room.BackColor = Color.Orange;
                    }
                    else
                    {
                        room.BackColor = Color.White;
                    }
                }
            }
        }
コード例 #3
0
        private void ShowContextMenu(UIElement target, Point offset)
        {
            if (!WorkSpace.Equals(""))
            {
                Models.Node CurrentNode = (Models.Node)Files.SelectedItem;

                var MyFlyout = this.Resources["FileContextMenu"] as MenuFlyout;

                System.Diagnostics.Debug.WriteLine("MenuFlyout shown '{0}', '{1}' on item:{2}", target, offset, CurrentNode.Path);

                MyFlyout.ShowAt(target, offset);
            }
        }
コード例 #4
0
ファイル: HomeBase.cs プロジェクト: marcbat/svxlinkmanager
 private async void SvxLinkService_NodeConnected(Models.Node n)
 {
     try
     {
         await InvokeAsync(() => StateHasChanged());
         await ShowInfoToastAsync(n.Name, "A rejoint le salon.");
     }
     catch (Exception e)
     {
         Logger.LogError($"Impossible d'indiquer qu'un noeud a rejoint le salon. {e.Message}");
         Telemetry.TrackException(e);
     }
 }
コード例 #5
0
ファイル: HomeBase.cs プロジェクト: marcbat/svxlinkmanager
 private void SvxLinkService_NodeTx(Models.Node n)
 {
     try
     {
         CurrentTxNode = n;
         InvokeAsync(() => StateHasChanged());
     }
     catch (Exception e)
     {
         Logger.LogError($"Impossible de passer le node en TX. {e.Message}");
         Telemetry.TrackException(e);
     }
 }
コード例 #6
0
        private void Files_Right_Click(object sender, RightTappedRoutedEventArgs e)
        {
            //var s = (FrameworkElement)sender;
            var d = ((FrameworkElement)e.OriginalSource).DataContext;

            System.Diagnostics.Debug.WriteLine("Selected Type :" + d.GetType());

            Models.Node node = (Models.Node)d;

            Files.SelectedItem = node;
            System.Diagnostics.Debug.WriteLine("Selected item :" + ((Models.Node)Files.SelectedItem).Label);

            ShowContextMenu(null, e.GetPosition(null));
        }
コード例 #7
0
        private void performGetAllRoutes()
        {
            try
            {
                DateTime start    = DateTime.Now;
                var      egresses = _controller.GetEgressNodes();
                double   total    = (double)treeView1.Nodes[0].Nodes.Count;
                UpdateStatus("Calculating Egress Routes to " + egresses.Count + " egress locations...");
                double count   = 0;
                double percent = 0.0;

                foreach (TreeNode child in treeView1.Nodes[0].Nodes)
                {
                    percent = count / total * 100.0;
                    count++;
                    UpdateStatus("Calculating Egress Routes to " + egresses.Count + " egress locations...(" + percent.ToString("F0") + "%)");
                    child.Nodes.Clear();
                    Models.Node roomNode = child.Tag as Models.Node;
                    foreach (var egress in egresses)
                    {
                        ExternalApp.Log("PathFinding " + roomNode + " to " + egress);
                        try
                        {
                            Models.Route r = Utilities.GraphUtility.FindShortest(roomNode, egress);
                            if (r != null)
                            {
                                addRouteNode(child, egress, r);
                            }
                        }
                        catch (Exception ex)
                        {
                            ExternalApp.Log("Exception while pathfinding:  " + ex.GetType().Name + ": " + ex.Message);
                            ExternalApp.Log(ex.StackTrace);
                        }
                    }
                }
                reCheckMaxPath();
                reCheckDoorCW();
                TimeSpan analysis = DateTime.Now - start;
                UpdateStatus("Analysis Completed in " + analysis);
            }
            catch (Exception ex)
            {
                Autodesk.Revit.UI.TaskDialog td = new Autodesk.Revit.UI.TaskDialog("Error");
                td.MainContent     = "Unexpected error: " + ex.GetType().Name + ":  " + ex.Message;
                td.ExpandedContent = ex.StackTrace;
                td.Show();
            }
        }
コード例 #8
0
        private void addRouteNode(TreeNode parent, Models.Node egress, Models.Route route)
        {
            TreeNode routeNode = parent.Nodes.Add("Route to " + egress.NodeType + ": " + egress.Name);

            routeNode.Tag = route;
            if (route != null)
            {
                routeNode.Text += ": " + route.TotalDistance.ToString("F2") + "ft.";

                //_controller.DrawRoute(route);
                StringBuilder sb = new StringBuilder();
                foreach (var node in route.Nodes)
                {
                    sb.Append(node.Name + " - ");
                }
                routeNode.ToolTipText = sb.ToString();
            }
        }
コード例 #9
0
        private void Files_Click(object sender, TappedRoutedEventArgs e)
        {
            Models.Node CurrentNode = (Models.Node)Files.SelectedItem;

            if (CurrentNode.Folder)
            {
                string fileId = CurrentNode.Path;

                if (WorkSpace.Equals(""))
                {
                    WorkSpace = fileId;
                }
                else
                {
                    History.Add(fileId);
                }


                System.Diagnostics.Debug.WriteLine("Item clicked, path:" + CurrentNode.Path);
                Browse();
            }
        }