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;
Transaction t = new Transaction( doc );
t.Start( "Create Steel Stair Beams" );
// Check whether the required family is loaded:
FilteredElementCollector collector
= new FilteredElementCollector( doc )
.OfClass( typeof( Family ) );
// If the family is not already loaded, do so:
if( !collector.Any<Element>(
e => e.Name.Equals( FamilyName ) ) )
{
FamilySymbol symbol;
if( !doc.LoadFamilySymbol(
_family_path, SymbolName, out symbol ) )
{
message = string.Format(
"Unable to load '{0}' from '{1}'.",
SymbolName, _family_path );
t.RollBack();
return Result.Failed;
}
}
try
{
// Create a couple of connected beams:
SteelStairs s = new SteelStairs( doc );
s.Run();
t.Commit();
return Result.Succeeded;
}
catch( Exception ex )
{
message = ex.Message;
t.RollBack();
return Result.Failed;
}
}