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;
}