Exactly as jobel explained in the previous comment, instances on a "ObjectBank" layout work as "blueprints". When you create a new object instance in runtime, Construct needs to get object properties (angle, size, opacity etc.) from somewhere. If there are no instances for this object in your project, Construct will not be able to read these properties and will fail to create a new one.
That's why the common practice is to have a separate unused layout as a storage for default instances.
Of course, you don't need to dump everything on this layout, only the objects which don't exist on other layouts and which you are planning to create in runtime.
Edit: I guess your question was more about "how Construct engine can read these properties from another layout, but I can't do this with events"? I don't know.