遍历全部房间,为每个房间创建对应的空间。
[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;
    }
}
from:http://revit.5d6d.com/thread-1384-1-1.html

相关文章: