def to_gds(self, multiplier):
        """
        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.
        """
        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)
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.