Ну, во-первых, нужно понимать, что возможности API и то, что можно сделать через интерфейс Revit-а практически совпадают (да, есть небольшой набор функционала, доступный только программно, да, еще не все, что можно сделать руками доступно через API, но таких вещей все меньше с каждой новой версией Ревита)
Пространства, как и помещения для Revit-а некая абстракция, задаваемая уровнем (возможно со смещением), границами и высотой + набором специфических параметров (ну, кроме неразмещенных пространств/помещений, они есть в базе, но у них нет геометрии)
Уже созданные пространства/помещения редактируются только если изменяется что-то их ограничивающее, стены, либо за счет разделителей пространств/помещений, в самом классе Space методов редактирования пространства нет:
Space.Level / Space.LevelId - уровень
Space.GetBoundarySegments - получить границы
Space.UnboundedHeight - высота
Ну формально, есть еще точка вставки Location - нужно привести к LocationPoint, но вряд ли она сильно интересна
Еще есть геометрия (просто поднимаем "выдавливание" от границ на высоту пространства/помещения), получаем Solid, который можно при желании можно получить и анализировать.
Теперь по поводу создания пространств:
public Space NewSpace(Phase phase) - создает неразмещенное пространство
public Space NewSpace(Level level, UV point) - указываем уровень и точку на плоскости, которая будет принадлежать пространству. Получаем Autodesk.Revit.Exceptions.InvalidOperationException, если пространство создать нельзя
public Space NewSpace( Level level, Phase phase, UV point ) - аналогично предыдущему, только еще указываем стадию
public ModelCurveArray NewSpaceBoundaryLines( SketchPlane sketchPlane, CurveArray curves, View view ) - а вот это для создания разделителей пространств
Public method NewSpaces2(Phase, Int32) - создаем сразу n неразмещенных пространств
Public method NewSpaces2(Level, Phase, View) - создаем пачку пространств (по замкнутым контурам) на уровне Level
С помещениями вроде бы методы похожие
Ну и да, если изменяются границы или добавляются разделители, сами пространства/помещения изменяются, но это все только в плане, на разрезе высота неизменна.
Вообще говоря, я еще раз повторюсь, с помощью вышеприведенных инструментов можно попробовать решить задачи специфицирования элементов, рассчетов объемов и т.д.
И да, еще в SDK есть пример AddSpaceAndZone, гляньте его