Garden architecture - ASCII style
APL (Dyalog), 34 bytes



Anonymous prefix function expecting integer in range 0–100. Assumes ⎕IO (Index Origin) to be 0, which is default on many systems.

{'#-|'[⊖⍉⍣s⊢10 10⍴100↑⍵⍴1+s←50≥⍵]}


Try it online!

{…} lambda; ⍵ is argument:

 '#-|[…] index the string with the following array:

 50≥⍵ 1 if 50 is greater than or equal to argument, else 0

 s← store in s (for small)

 1+ increment

 ⍵⍴ cyclically reshape to argument-length

 100↑ take the first hundred of that, padding with zeros

 10 10⍴ reshape to ten rows and ten columns

 ⊢ yield that (separates s from 10 10)

 ⍉⍣s transpose if small

 ⊖ flip upside-down