~입니다 is always attached (the only agglutinative verb) to what it is or a quality.
"나는 나는개입니다" ... I am a flying dog.
"나는 개입니다" ... I am a dog or It is a flying dog (depending on the conversation!).
어니다 the negative is a different verb that does not attach.
"나는 나는개가 어닙니다" ... I am not a flying dog.
That's my understanding, too. Adding some references here:
See online Basics 2:
The verb 있다 equals two English verbs:
It is the most commonly used of Korean words for "to have".
It also means "to exist/to be" (location or existence).
See online Basics 1:
It is not same "to be" as the agglutinative verb "~입니다" which tells us that A equals B (I am a dog), or that a certain quality describes (it is a flying dog).