LTspice is a professional made SPICE family free of charge product for editing and simulating
electronic circuits with an extendable library of objects. It's one of the best software products
I have ever used. It helps me in studying of existing circuits and also for preparing new circuits.
All shapes and attributes of disponible parts are in c:\Program Files (x86)\LTC\LTspiceIV\lib\, which is periodically updated.
What to do, if we need to use a part, which is not present in the standard library ?
First we have to search in WWW resources, if we find Spice description of such part. There are 2 possibilities.
1. A complex circuit (e.g. an IC) we find as a subcircuit. We create a file - in our case LM358.txt and use a .include directive as on the screenshot.
2. Simple part (e.g. a transistor) we can find as model. Here we have 3 options as we can see on the screenshot:
a) copy the standard library from LTSpice to another place, add there our enhancements and use a .lib directive
b) create a file - in our case mylib.ger and use a .lib directive
c) write the .model directive in circuit diagram.