Hi Oscar!
When I see you are studying at University West lots of good memories pops up. I studied there when it was called Högskolan Trollhättan Uddevalla 
Making it easier and faster to model and create programs is essential for bringing more automation to small and medium sized companies that can not afford having dedicated simulation and programming experts. I’m looking forward to learn more about your findings.
Let me try to help you sort out a few things. Lets start with the big paintbrush and dig into the details later.
Almost everything that you can do with the RobotStudio User Interface you can also do programmatically using the APIs we make available in the RobotStudio SDK.
You can certainly import and place CAD models, as well as creating simple solid primitives using the API.
RobotStudio has a feature called SmartComponents which makes it possible author and use components with or without CAD data that also has a built in behaviour. They can have properties such as length and height or whatever you want, and signals that can be connected with other components. The can also be animated.
There is a large library of base components that you can use to assemble higher order components. This can be done in the UI as well as using the API. We also have an XML format which makes it possible to specify the components in a declarative fashion that can be imported into RobotStudio.
So can you do modelling using the API? Yes!
The RobotStudio object model also have a representation of robtargets, workobjects and move instructions of the RAPID language. Thus you can programmatically create such objects and using them create (or add modules to) a RAPID program.
We call that RAPID Sync, when you synchronize the 3d representation in the “modelling world” with a the RAPID program in the Virtual Controller.
Of course there are APIs for starting and stopping a simulation including the robot motion based on the created RAPID program.
Can you create and simulate robot programs based on the models? Yes!
Regarding communication with the controller, you can use sockets if you want. There is also a .NET SDK called PC SDK which is possible to use from a RobotStudio Add-In.
In order to help you more I would like to ask you if you have thought more about what the purpose of the communication is?
Would you like to interact with something in the 3d view at the same time as the simulation is running? Its not 100% clear to me 
About loading of Add-Ins:
You can right click on the Add-In in the Add-Ins browser and select “Auto-Load”. Have you tried that?