Судя по всему в алгоритме определения находится ли точка внутри помещения закралась ошибка.
Данный метод будет работать только для SpatialElement расположенных на отметке по Z равной нулю,
т.к. в данной строке
// Создадим луч
Line line = Line.CreateBound(point, new XYZ(10000, 0, 0));
строится линия из проверяемой точки в конкретную точку (10000, 0, 0), которая может совсем и не лежать в плоскости зоны, в отличии от первой точки.
Как я понимаю, верно будет
Line line = Line.CreateBound(point, point + new XYZ(10000, 0, 0));