You never have to use official models.
The issue is what will OTHER players want to play against.
It can be very hard getting people to play against your 'self-made' codex. A lot of people might do the odd game, but won't see it as playing 'proper'
40k, so won't do it all the while. I'd suggest a counts-as using another codex.
Getting people to play against non-
GW models is easier, as long as you fulfill
WYSIWYG. If I'm playing against a group of models with lasguns, I want to be able to see that they are recognisable as lasguns from the other end of the table, etc...