public List <DXFGeometry> ConvertToDrawable() { List <DXFGeometry> geometry = new List <DXFGeometry>(); if (this.FEntities == null) { return(geometry); } int n = this.FEntities.ecEntities.Count; for (int i = 0; i < n; i++) { DXFEntity e = this.FEntities.ecEntities[i]; Type t = e.GetType(); DXFGeometry eG = new DXFGeometry(); List <DXFGeometry> eGs = new List <DXFGeometry>(); // type deistinction if (t == typeof(DXFInsert)) { DXFInsert ei = e as DXFInsert; eGs = ei.ConvertToDrawables(); if (eGs.Count > 0) { geometry.AddRange(eGs); } } else { eG = e.ConvertToDrawable(); if (!eG.IsEmpty()) { geometry.Add(eG); } } } return(geometry); }