public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{
UIApplication uiapp = commandData.Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Application app = uiapp.Application;
Document doc = uidoc.Document;
List<Element> filledRegions
= new List<Element>();
if( Util.GetSelectedElementsOrAll(
filledRegions, uidoc, typeof( FilledRegion ) ) )
{
int n = filledRegions.Count;
string[] results = new string[n];
int i = 0;
foreach( FilledRegion region in
filledRegions.Cast<FilledRegion>() )
{
string desc = Util.ElementDescription( region );
List<XYZ> corners = GetBoundaryCorners(
region );
string result = ( null == corners ) ? "failed"
: string.Join( ", ",
corners.ConvertAll<string>(
p => Util.PointString( p ) )
.ToArray() );
results[i++] = string.Format( "{0}: {1}",
desc, result );
}
string s = string.Format(
"Retrieving corners for {0} filled region{1}{2}",
n, Util.PluralSuffix( n ), Util.DotOrColon( n ) );
string t = string.Join( "\r\n", results );
Util.InfoMsg2( s, t );
}
return Result.Succeeded;
}