Modelica touts as one of its advantages over Simulink that it is "component-based" whereas Simulink is "block based".
What exactly does this mean?
Components have connections that can be either inputs or outputs, while blocks have defined inputs and defined outputs.
With the components you can have bidirectional causality while if you want to do something similar with blocks you have to figure out which way the causality will flow and explicitly code it that way.
At least that's my very very limited understanding of it.