Ein Makro zum verändern von Navigationspunkten


Thomas Wölfer
Thomas Wölfer

22. April 2009


Manchmal möchte man einen oder mehrere bereits vorhandene Navigationspunkte verändern - dafür gibt es aber leider keine "wirklich" gute Funktion im normalen Umfang der Baustatik. Heute hatte ein Kunde ein derart gelagertes Problem, und darum haben wir ein kleines Makro zusammengebaut, mit dem man so etwas tun kann. Das folgende Makro tut folgendes: Es überträgt die ausgewählten Elemente sowie die Darstellungseigenschaften der aktuellen Ansicht in alle ausgewählen Navigationspunkte. Die Ergebnis-Einstellungen der ausgewählten Navigationspunkte bleiben erhalten.

Man kann das Makro einfach in den Makro-Editor kopieren und ausführen.

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using DIE.Applications.Faltwerk.Objects.BeamStations;
using DIE.Framework.ApplicationModell.Commands;

namespace MeineMakros
{
    public class RepairNavi : UserCommandBase
    {
        public RepairNavi() : base(@"RepairNavi", @"RepairNavi")
        {
        }
        
        public override void Execute(IExecuteCommandContext context)
        {
         if(context.TargetDocument != null)
         {
            List<IBeamStation> beamStations = context.TargetDocument.GlobalSelection.GetObjects(typeof (IBeamStation)).ToList<IBeamStation>();

            if (beamStations.Count == 0)
            {
               MessageBox.Show("Wählen Sie zunächst Navigationspunkte aus.");
               return;
            }

            BeamStation template = new BeamStation();
            template.Init(context.TargetDocument, context.TargetView3d);

            foreach(BeamStation beamStation in beamStations)
            {
               beamStation.DefaultDisplayProperties = template.DefaultDisplayProperties;
               beamStation.SpecificDisplayProperties = template.SpecificDisplayProperties;
               beamStation.SpecificallyDisplayedGroups = template.SpecificallyDisplayedGroups;
            }
         }
        }
   }
}