Exemple #1
0
        private void TreeView1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                viewportLayout1.Entities.DeleteSelected();
                TreeViewManager.DeleteSelectedNode(modelTree, viewportLayout1);

                viewportLayout1.Invalidate();
            }
        }
Exemple #2
0
 private void ViewportLayout1_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.KeyCode == Keys.Delete)
     {
         TreeNode selectedNode = modelTree.SelectedNode;
         if (selectedNode != null && ((Entity)selectedNode.Tag).Selected)
         {
             // Removes all the nodes linked to the deleted entity
             TreeViewManager.DeleteSelectedNode(modelTree, viewportLayout1);
         }
     }
 }
Exemple #3
0
        private void Selection(MouseClickType mouseClickType)
        {
            if (_treeModify)
            {
                return;
            }

            _treeModify = true;

            if (mouseClickType == MouseClickType.RightClick)
            {
                // Sets the parent of the current BlockReference as current.
                viewportLayout1.Entities.SetParentAsCurrent();
            }
            else
            {
                // Deselects the previously selected item
                if (lastSelectedItem != null)
                {
                    lastSelectedItem.Select(viewportLayout1, false);
                    lastSelectedItem = null;
                }

                var item = viewportLayout1.GetItemUnderMouseCursor(_mousePosition);

                if (item != null)
                {
                    lastSelectedItem = item;

                    TreeViewManager.CleanCurrent(viewportLayout1, false);

                    // Marks as selected the entity under the mouse cursor.
                    item.Select(viewportLayout1, true);
                }
                else
                {
                    // Back to the root level
                    if (mouseClickType == MouseClickType.LeftDoubleClick)
                    {
                        TreeViewManager.CleanCurrent(viewportLayout1);
                    }
                }
            }

            // An entity in the viewport was selected, so we highlight the corresponding element in the treeview as well
            TreeViewManager.SynchScreenSelection(modelTree, new Stack <BlockReference>(viewportLayout1.Entities.CurrentBlockReferences), lastSelectedItem);

            viewportLayout1.Invalidate();

            _treeModify = false;
        }
Exemple #4
0
        private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (_treeModify)
            {
                return;
            }

            _treeModify = true;

            //An element of the treeview was selected, so we select the corresponding viewport element as well

            if (lastSelectedItem != null)
            {
                lastSelectedItem.Select(viewportLayout1, false);
            }

            TreeViewManager.CleanCurrent(viewportLayout1);
            lastSelectedItem = TreeViewManager.SynchTreeSelection(modelTree, viewportLayout1);

            viewportLayout1.Invalidate();

            _treeModify = false;
        }
Exemple #5
0
        protected override void OnLoad(EventArgs e)
        {
            _treeModify = false;

            testLayer = viewportLayout1.Layers.Add("testLayer", Color.Red);
            int testLayer1 = viewportLayout1.Layers.Add("onPlane", Color.Blue);

            spatialLayer = viewportLayout1.Layers.Add("spatialLayer", Color.Green);

            viewportLayout1.Layers[0].Name = "Default";
            //viewportLayout1.Layers[0].Color = Color.Gray;

            //viewportLayout1.Layers[spatialLayer].Visible = true;
            //viewportLayout1.Layers[0].Visible = false;

            //DatabaseIfc db = new DatabaseIfc("C:\\devdept\\IFC Model.ifc");
            //DatabaseIfc db = new DatabaseIfc("C:\\devdept\\IFC\\Martti_Ahtisaaren_RAK.ifc");                //gym exception
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\MOD-Padrão\\MOD-Padrão.ifc");
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Data\\Blueberry031105_Complete_optimized.ifc");
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Data\\Clinic_Handover_WithProperty3.ifc");      //Gym exception
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Data\\Duplex_A_20110907.ifc");
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Data\\NER-38d.ifc");
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Data\\NHS Office.ifc");
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Data\\Office_A_20110811.ifc");
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Data\\porur duplex.ifc");
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Data\\c_rvt8_Townhouse.ifc");

            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Samples\\01 Fire Protection.ifc");
            DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Samples\\ArchiCAD IFC Buildsoft.ifc");
            //DatabaseIfc db = new DatabaseIfc("C:\\devDept\\IFC\\IFC Samples\\Clinic_S_20110715_optimized.ifc");

            IfcProject project = db.Project;

            List <IfcBuildingElement> ifcBuildingElement = project.Extract <IfcBuildingElement>();

            List <IfcSpatialElement> ifcSpatialElement = project.Extract <IfcSpatialElement>();

            List <IfcDistributionElement> ifcDistributionElement = project.Extract <IfcDistributionElement>();

            //List<IfcRoot> ifcRoot = project.Extract<IfcRoot>();

            foreach (IfcSpatialElement ifcElement in ifcSpatialElement)  //ifcmesh
            {
                Entity eyeElement = null;

                Transformation elementTrs = new Transformation(1);

                if (ifcElement.Placement != null)
                {
                    elementTrs = Conversion.getPlacementTransformtion(ifcElement.Placement);
                }
                if (ifcElement.Representation != null)
                {
                    eyeElement = Conversion.getEntityFromIfcProductRepresentation(ifcElement.Representation, viewportLayout1, elementTrs);
                }
                if (eyeElement != null)
                {
                    eyeElement.TransformBy(elementTrs);

                    if (eyeElement is BlockReference)
                    {
                        UtilityIfc.loadProperties((IfcBlockReference)eyeElement, ifcElement);
                    }
                    else
                    {
                        IfcMesh ifcMesh;

                        Mesh eyeElementMesh;

                        if (eyeElement is Solid)
                        {
                            Solid eyeElementSolid = (Solid)eyeElement;

                            eyeElementMesh = eyeElementSolid.ConvertToMesh();
                        }
                        else
                        {
                            eyeElementMesh = (Mesh)eyeElement;
                        }
                        Color           color = eyeElementMesh.Color;
                        colorMethodType cmt   = eyeElementMesh.ColorMethod;

                        ifcMesh = new IfcMesh(eyeElementMesh.Vertices, eyeElementMesh.Triangles);

                        ifcMesh.Color       = color;
                        ifcMesh.ColorMethod = cmt;

                        UtilityIfc.loadProperties(ifcMesh, ifcElement);

                        eyeElement = ifcMesh;
                    }
                    viewportLayout1.Entities.Add(eyeElement, spatialLayer);
                }
            }

            foreach (IfcBuildingElement ifcElement in ifcBuildingElement)
            {
                if (ifcElement.GlobalId.StartsWith("3LHl4aR6j6bfwjDqKa2Mh9") && /**/ ifcElement.Decomposes == null)
                {
                    Entity eyeElement = Conversion.getEntityFromIfcElement(ifcElement, viewportLayout1);

                    if (eyeElement != null)
                    {
                        viewportLayout1.Entities.Add(eyeElement, 0);
                    }
                }
            }

            foreach (IfcDistributionElement ifcElement in ifcDistributionElement)
            {
                if (/*ifcElement.GlobalId.StartsWith("2O_tcxRRn1gegwp_L0mkmi") &&/**/ ifcElement.Decomposes == null)
                {
                    Entity eyeElement = Conversion.getEntityFromIfcElement(ifcElement, viewportLayout1);

                    if (eyeElement != null)
                    {
                        viewportLayout1.Entities.Add(eyeElement, 0);
                    }
                }
            }

            debug += Conversion.Debug;

            Debug.WriteLine(debug);

            TreeViewManager.PopulateTree(modelTree, viewportLayout1.Entities.ToList(), viewportLayout1.Blocks);

            viewportLayout1.ZoomFit();
        }