To make a building require an upgrade you must enter these lines of code:
Code:
Options = NEED_UPGRADE CANCELABLE
NeededUpgrade = <insertupgradenamehere>
Heres an example of this - the haradrim palace requires the fire arrow upgrade:
Code:
CommandButton Command_ConstructMordorHaradrimPalace
Command = FOUNDATION_CONSTRUCT
Object = MordorHaradrimPalace
Options = NEED_UPGRADE CANCELABLE
NeededUpgrade = Upgrade_TechnologyMordorFireArrows
TextLabel = CONTROLBAR:ConstructMordorHaradrimPalace
ButtonImage = BMHaradrimPalace
ButtonBorderType = BUILD ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:ToolTipMordorHaradrimPalace
Radial = Yes
End
Hope this helped, but I still need the answer to question 1.