Not sure I understand the question but most GDS layout editors read the layout into their custom format in memory and manipulater them there, then save them back to GDS2 or Oasis etc.
If you look at the freeware KLAYOUT, it allows you to read in a GDS2 layout, then using the ruby language, manipulte the layout then save the layout as GDS2 or Oasis. There are several scripts in ruby on the klayout web site. To shrink a given layout would be moderately straight forward. The same could be done using Cadence script language.