Você não pode (infelizmente) fazer isso. Um parâmetro Sql só pode ser um único valor, então você teria que fazer:
WHERE buildingID IN (@buildingID1, @buildingID2, @buildingID3...)
O que, é claro, requer que você saiba quantos IDs de construção existem ou que construa dinamicamente a consulta.
Como solução alternativa*, fiz o seguinte:
WHERE buildingID IN (@buildingID)
command.CommandText = command.CommandText.Replace(
"@buildingID",
string.Join(buildingIDs.Select(b => b.ToString()), ",")
);
que substituirá o texto da instrução pelos números, terminando como algo como:
WHERE buildingID IN (1,2,3,4)
- Observe que isso está se aproximando de uma vulnerabilidade de injeção de SQL, mas como é um array int, é seguro. Strings arbitrárias não seguro, mas não há como incorporar instruções Sql em um inteiro (ou datetime, boolean, etc).