Esempio n. 1
0
        /// <summary>
        /// Aula 10
        /// </summary>
        private void RotateElements()
        {
            var acd = NavisworksApp.ActiveDocument;

            double a   = 0;
            double inc = 3;

            if (LbTurnRigth.BackColor.Equals(FocusedColor))
            {
                a = inc * (Math.PI / 180.0);
            }

            if (LbTurnLeft.BackColor.Equals(FocusedColor))
            {
                a = -inc * (Math.PI / 180.0);
            }

            if (a == 0)
            {
                return;
            }

            try
            {
                var se = acd.CurrentSelection.SelectedItems;

                foreach (var item in se)
                {
                    var loc = item.BoundingBox().Center;

                    var mb = new Vector3D(loc.X, loc.Y, loc.Z);

                    var mo = new Vector3D(-loc.X, -loc.Y, -loc.Z);

                    var transVec = Transform3D.CreateTranslation(mo);

                    acd.Models.OverridePermanentTransform(new List <ModelItem> {
                        item
                    }, transVec, true);

                    //Rotate
                    var rt = new Rotation3D(new UnitVector3D(0, 0, 1), a);

                    var transRotate = new Transform3D(rt, mb);

                    acd.Models.OverridePermanentTransform(new List <ModelItem> {
                        item
                    }, transRotate, true);

                    this.lbCenterLogEixos.Text = string.Format("X = {0}\n Y = {1}\n Z = {2}", item.BoundingBox().Center.X.ToString(),
                                                               item.BoundingBox().Center.Y.ToString(),
                                                               item.BoundingBox().Center.Z.ToString());
                }
            }
            catch (Exception)
            {
                //
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Aula 10
        /// </summary>
        private void MoveElements()
        {
            var acd = NavisworksApp.ActiveDocument;

            var x   = 0;
            var y   = 0;
            var z   = 0;
            var inc = 100;

            if (LbEixoXPlus.BackColor.Equals(FocusedColor))
            {
                x = inc;
            }

            if (LbEixoXLess.BackColor.Equals(FocusedColor))
            {
                x = -inc;
            }

            if (LbEixoYPlus.BackColor.Equals(FocusedColor))
            {
                y = inc;
            }

            if (LbEixoYLess.BackColor.Equals(FocusedColor))
            {
                y = -inc;
            }

            if (LbEixoZPlus.BackColor.Equals(FocusedColor))
            {
                z = inc;
            }

            if (LbEixoZLess.BackColor.Equals(FocusedColor))
            {
                z = -inc;
            }

            if (x == 0 && y == 0 && z == 0)
            {
                return;
            }

            try
            {
                var se = acd.CurrentSelection.SelectedItems;

                foreach (var item in se)
                {
                    var im = item.AncestorsAndSelf.First(i => i.Model != null);

                    var sc = UnitConversion.ScaleFactor(Units.Millimeters, im.Model.Units);

                    var mv = new Vector3D(x * sc, y * sc, z * sc);

                    var transVec = Transform3D.CreateTranslation(mv);

                    acd.Models.OverridePermanentTransform(new List <ModelItem> {
                        item
                    }, transVec, true);

                    this.lbCenterLogEixos.Text = string.Format("X = {0}\n Y = {1}\n Z = {2}", item.BoundingBox().Center.X.ToString(),
                                                               item.BoundingBox().Center.Y.ToString(),
                                                               item.BoundingBox().Center.Z.ToString());
                }
            }
            catch (Exception)
            {
                //
            }
        }