this is how i go about such problems
find what you want (in this case, object_set_solid)
go to the help, search for "object_set_solid"
object_set_solid(ind,solid) Sets whether instances created of the object must default be solid (true or false).
ok, quite obvious, but it says nothing about the arguments, so lets look up a bit at the other generic ones
object_set_sprite(ind,spr) Sets the sprite of the object with the given index. Use -1 to remove the current sprite from the object.
so ind must mean the object
and so, you're using it correctly.
but, there are alternatives
"solid=1"
is what i've always used. never even knew "object_set_solid" existed.
but you see, object_set_solid probably sets the OBJECT to be a solid one, not just that instance (so you can object the general object properties whenever.)
self refers to that INSTANCE of the object. so that wont work
solid=1 will be fine though.
again, the same goes for "object_set_parent"
but thats something special. you wouldnt really want to change that on the fly O_o
but if you really do :S then you need to change the parent for all instances of that object it seems and so:
"object_set_parent(objWhatever,objFloor)"
objWhatever being the object you want to alter.
like i said, "self" applies to that instance and that just wont work in this case. as these are to change the actual object properties.