How do i make it translate by how much its done?

I am making a rts game and im trying to get the building to go up as far as the builder has built it so im trying to get it to translate to the other object bye a percent but i dont know how to do that.

heres a basic version of the script.

private float amountToBuild = 30;
private float amountBuilt = 0; // it adds to this as it builds
public GameObject building;
public GameObject StopPose;
void Update()
{
  building.transform.position = Vector3.MoveTowards(transform.position, stopPose.transform.position, ); // how do i make it only go as far as its built  
}

You’d need to store a starting position to calculate its current position then you could just use a Lerp to set its position

private Vector3 startPos;

void Start(){
  //set its initial starting position (or whenever it's placed do this)
  startPos = transform.position;
}

void Update(){
  building.transform.position = Vector3.Lerp(startPosition.position, stopPose.transform.position, amountBuilt / amountToBuild);
}