: In the spirit of Google we want engineers to start thinking like programmers (Tim Ansell said as much in his talk). So: Even analog design should be like software. This is the goal of BAG (Berkeley Analog Generator) and FaSOC (see the #bag
channels; also #paracells
which is analog in the sense of automatically handling the transistor-level implementation of digital standard cells). There is nothing wrong with drawing your own resistor except that the rules for primitive devices are often complex and the devices themselves sometimes have a fixed definition, and sometimes that fixed definition is not even explained in the DRC rule documentation, but only exist as part of a parameterized cell layout.
But, that said: The parameterized cells need to be written and are written by hand and there is really no other way to do it since, as I said, there is often nothing documenting what the device should look like. For that, every device becomes (in Magic) a Tcl procedure (or set of procedures); in other tools, they will likely be Python scripts (I will, as a matter of principle, reject anything written in SKILL). The best way to "make a resistor", then, is to create a Tcl script that defines and draws that resistor in a parameterized way that automatically satisfies all DRC rules. There are a number devices in sky130 that do not have parameterized drawing routines in the PDK for Magic, including a lot of useful analog devices such as the high-voltage extended drain devices, the DENMOS and DEPMOS devices, etc. Unfortunately these are complicated devices to draw and so complicated devices to write parameterized scripts for. All of the devices that were simple to draw, I've already made Tcl scripts for. But writing a Tcl script for a simple device is a good exercise anyway, and there are many ways in which the parameterized scripts can be improved (for example, none of them has an option to contact up to metal1, but that should be an option for every pin because local interconnect cannot be used for routing, so in general every pin of every device will be expected to connect up to metal1).