[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] public class cmdRoom : IExternalCommand{ public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements) { UIApplication uiApp = commandData.Application; Document doc = uiApp.ActiveUIDocument.Document; Selection sel = uiApp.ActiveUIDocument.Selection; Transaction ts = new Transaction(doc, " http://revit.5d6d.com " ); ts.Start(); // 遍历所有房间 FilteredElementCollector collector = new FilteredElementCollector(doc); collector.OfCategory(BuiltInCategory.OST_Rooms); foreach (Element el in collector) { Room room = el as Room; LocationPoint roomPoint = room.Location as LocationPoint; // 为房间创建空间 doc.Create.NewSpace(room.Level, new UV(roomPoint.Point.X, roomPoint.Point.Y)); } ts.Commit(); return Result.Succeeded; }}