code: def to_gds(self, multiplier):
          
          name = self.ref_cell.name
          if len(name) % 2 != 0:
              name = name + '\0'
          data = struct.pack('>4h', 4, 0x0A00, 4 + len(name),
                             0x1206) + name.encode('ascii')
          if (self.rotation is not None) or (self.magnification is
                                             not None) or self.x_reflection:
              word = 0
              values = b''
              if self.x_reflection:
                  word += 0x8000
              if not (self.magnification is None):
                  # This flag indicates that the magnification is absolute, not
                  # relative (not supported).
                  #word += 0x0004
                  values += struct.pack('>2h', 12, 0x1B05) + _eight_byte_real(
                      self.magnification)
              if not (self.rotation is None):
                  # This flag indicates that the rotation is absolute, not
                  # relative (not supported).
                  #word += 0x0002
                  values += struct.pack('>2h', 12, 0x1C05) + _eight_byte_real(
                      self.rotation)
              data += struct.pack('>2hH', 6, 0x1A01, word) + values
          return data + struct.pack(
              '>2h2l2h', 12, 0x1003, int(round(self.origin[0] * multiplier)),
              int(round(self.origin[1] * multiplier)), 4, 0x1100)
docs: Convert this object to a GDSII element.
  
          Parameters
          ----------
          multiplier : number
              A number that multiplies all dimensions written in the GDSII
              element.
  
          Returns
          -------
          out : string
              The GDSII binary string that represents this object.