Всем привет. Столкнулся со странным поведением
Итак: Имеем - Revit 2015, План первого этажа с одной колонной на нем.
Что делаю - указываю две точки через PickPoint. По этим точкам создаю отрезок Line.CreateBound().
Дальше, через get_Geometry() из колонны собираю все отрезки:
public static void GetGeometryFromGeometryElement(
    GeometryElement geometryElement,
    ref List<Face> faces,
    ref List<Curve> curves,
    ref List<Solid> solids
    )
{
    foreach (GeometryObject geometryObject in geometryElement)
    {
        Face face = geometryObject as Face;
        if (face != null)
        {
            faces.Add(face);
            continue;
        }
        Curve curve = geometryObject as Curve;
        if (curve != null)
        {
            if (curve.Reference != null)
                curves.Add(curve);
            continue;
        }
        Solid solid = geometryObject as Solid;
        if (solid != null)
        {
            solids.Add(solid);
            continue;
        }
        GeometryInstance geometryInstance = geometryObject as GeometryInstance;
        if (geometryInstance != null)
        {
            GeometryElement transformedGeometryElement =
                geometryInstance.GetInstanceGeometry();
            GetGeometryFromGeometryElement(transformedGeometryElement, ref faces, ref curves, ref solids);
        }
    }
}
Из всех солидов и фейсов тоже собираю отрезки:
if (faces.Any())
    foreach (Face face in faces)
        GeometryHelpers.GetCurvesFromFace(face, ref curves);
if (solids.Any())
    foreach (Solid solid in solids)
        GeometryHelpers.GetCurvesFromSolid(solid, ref curves);
...........................
public static void GetCurvesFromSolid(Solid solid, ref List<Curve> curves)
{
    foreach (Edge edge in solid.Edges)
    {
        if (edge.AsCurve().Reference != null)
            curves.Add(edge.AsCurve());
    }
    foreach (var f in solid.Faces)
    {
        if (f is Face face)
            GetCurvesFromFace(face, ref curves);
        if (f is PlanarFace planarFace)
            GetCurvesFromFace(planarFace, ref curves);
    }
}
public static void GetCurvesFromFace(Face face, ref List<Curve> curves)
{
    EdgeArrayArray edgeArrayArray = face.EdgeLoops;
    foreach (EdgeArray edgeArray in edgeArrayArray)
    {
        foreach (Edge edge in edgeArray)
        {
            if (edge.AsCurve().Reference != null)
                curves.Add(edge.AsCurve());
        }
    }
}
public static void GetCurvesFromFace(PlanarFace face, ref List<Curve> curves)
{
    EdgeArrayArray edgeArrayArray = face.EdgeLoops;
    foreach (EdgeArray edgeArray in edgeArrayArray)
    {
        foreach (Edge edge in edgeArray)
        {
            if (edge.AsCurve().Reference != null)
                curves.Add(edge.AsCurve());
        }
    }
}
Для всех этих манипуляций использую опции:
Options options = new Options { ComputeReferences = true, View = doc.ActiveView, IncludeNonVisibleObjects = true };
Затем, после некоторых простых математических манипуляций у меня остается только два крайних отрезка. Я беру их референсы и по ним создаю новый размер
И вот тут происходит самое интересное - я получаю размер Шредингера! =))) Размер создается! Через отладку кода я получаю его Id. Но на плане он НЕ ПОЯВЛЯЕТСЯ! Его просто нету.
При этом, используя команду "Выбрать по коду" это размер выбирается. Через LookUp смотрю - все с ним нормально. Но его при этом нет! 
Кто сталкивался с таким?