If you have something that is a GDS file created by a 3rd party but it doesn't read into magic cleanly like that, then it's best to create an abstract view of it to substitute. This is what we do with the SRAM macros. You would want to first read the GDS ("gds read") and then write a LEF file ("lef write"). Then exit and restart magic, read the LEF file ("lef read"), followed by reading the GDS file ("gds read"). The LEF file read will generate a .mag view of the abstract view, and the "gds read" will then annotate that view with a pointer to the GDS file and the position of the cell within that file. After that, you can use the .mag view in the layout, but because it has the pointers to the GDS file, if you write GDS of a file containing that abstract view, the cell will be replaced by the contents of the cell's GDS file that it got annotated with.