Start
ACreat = Autodesk. Revit. Creation; [Transaction (TransactionMode. Manual)]
[Regeneration (RegenerationOption. Manual)]
Cmd: IExternalCommand
{
Result Execute (ExternalCommandData upload data, msg, ElementSet elements)
{
UIDocument uiDoc = upload data. Application. ActiveUIDocument;
UIApplication uiApp = response data. Application;
Document doc = uiDoc. Document;
Selection sel = uiDoc. Selection;
Transaction ts = Transaction (doc ,);
{
Ts. Start ();
FilteredElementCollector collector = FilteredElementCollector (uiDoc. Document );
IList <Element> collection = collector. OfClass (FamilySymbol). OfCategory (BuiltInCategory. OST_DuctFitting). ToElements ();
FamilySymbol familySymbol = collection [] FamilySymbol;
PickedBox pb = sel. PickBox (PickBoxStyle. Directional ,);
List <XYZ> listXYZ = List <XYZ> (); dDistance =; XYZ xyzStart = pb. Min; bWhile =;
(BWhile)
{
XyzStart + = XYZ (dDistance,-dDistance ,);
(XyzStart. X> pb. Max. X | xyzStart. Y <pb. Max. Y)
BWhile =;
ListXYZ. Add (xyzStart );
}
List <ACreat. FamilyInstanceCreationData> fiCreationDatas = List <ACreat. FamilyInstanceCreationData> ();
(XYZ item listXYZ)
{
ACreat. FamilyInstanceCreationData fiCreationData =
ACreat. FamilyInstanceCreationData (item, familySymbol, familySymbol. Level, StructuralType. NonStructural );
(! = FiCreationData)
{
FiCreationDatas. Add (fiCreationData );
}
}
Doc. Create. NewFamilyInstances (fiCreationDatas );
Ts. Commit ();
}
(Exception ex)
{
Ts. RollBack ();
}
Result. Succeeded;
}
} Url: http://greatverve.cnblogs.com/p/revit-api-NewFamilyInstances.html