А сам? 
"а сам" поуши занят. Не разорваться же мне. 

- static void DeleteVertexesFromPolyline(ObjectId id, int iStart, int iEnd) 
- { 
Первым делом следовало бы проверить id на предмет не равности null, на предмет валидности, и на предмет не удалённости (если нужно обрабатывать только не удалённые объекты). Проверку аргументов вообще следует взять за правило. Не плохо было бы проверять и второй с третьим аргументом (для надёжности кода) например на предмет того, что их значения не меньше нуля и что третий параметр не меньше второго. 
Тут двоякое чувство... Если проверка аргументов прошла успешно, то данная проверка будет лишней (имхо), хотя можно и оставить её, дабы перестраховаться. Однако в случае, если вдруг окажется null, молча пропускать это - на мой взгляд, не самый правильный выбор. Я бы предпочёл либо исключение генерировать, либо сигнализировать об этом путём возвращаемого логического значения, сообщающего об успехе\неудачи операции.