BuildingCoder.CmdSpaceAdjacency.Execute C# (CSharp) Method

Execute() public method

public Execute ( ExternalCommandData commandData, string &message, ElementSet elements ) : System.Result
commandData ExternalCommandData
message string
elements ElementSet
return System.Result
        public Result Execute(
            ExternalCommandData commandData,
            ref string message,
            ElementSet elements)
        {
            UIApplication app = commandData.Application;
              UIDocument uidoc = app.ActiveUIDocument;
              Document doc = uidoc.Document;

              List<Element> spaces = new List<Element>();
              if( !Util.GetSelectedElementsOrAll(
            spaces, uidoc, typeof( Space ) ) )
              {
            Selection sel = uidoc.Selection;
            message = (0 < sel.GetElementIds().Count)
              ? "Please select some space elements."
              : "No space elements found.";
            return Result.Failed;
              }

              List<Segment> segments = new List<Segment>();

              foreach( Space space in spaces )
              {
            GetBoundaries( segments, space );
              }

              Dictionary<Segment, Segment> segmentPairs
            = new Dictionary<Segment, Segment>();

              FindClosestSegments( segmentPairs, segments );

              Dictionary<Space, List<Space>> spaceAdjacencies
            = new Dictionary<Space, List<Space>>();

              DetermineAdjacencies(
            spaceAdjacencies, segmentPairs );

              ReportAdjacencies( spaceAdjacencies );

              return Result.Failed;
        }