I have part with multiple heterogeneous gates that I already use in schematic. If I go into the part editor and remove any gate ( for whatever reason) except the last one and then try to reload it in schematic, all the following gates are reassigned shifted by the missing gate letter and of course end up in wrong part of the schematic and with wrong pin assignment. How do I prevent that?
The gates in a part start at the letter ‘a’ and will run in sequence through the alphabet. The system will close the gap up if one is removed mid-sequence. So in the schematic you should disconnect the pins of any connected gates, reload and then move them to where you want them before reconnecting. Changing gate order in the part may help to minimise the impact.
Why the "system" would need to close the gap and reassign following gates when one is removed in the middle is beyond me. Suggesting that I disconnect all pins to remove one gate is hard to swallow as well. Just imagine having e.g. a microcontroller part with multitude of gates of different sizes and hundreds of pins. Disconnect all pins, reload and connect again takes at least full day to deal with if not more and is way more prone to mistakes. Also, isn't gate reordering in part going to reassign the letters as well? Ending up with the same problem? Here is where user supplied gate name used by the "system" as a key identifier would do wanders. It's done for nets. Why not gates?
The requirement to take this action should be minimal as it would only need to be applied to incorrect/modified parts that are already in-circuit. Disconnection of nets on those gates to be affected would be achieved using Disconnect Con End so leaving the connection end local ready for re-connect. This function is also available for the symbol i.e. select the symbol(s) and apply the function in one go. Re-connection can be helped also by drop-connection onto the ends of the left connections using Auto Weld. Gate reordering is achieved by a list so as few can be reordered as needed.