def constructability_column(self): """ This method is used to update the column member size by considering the constructability (ease of construction). :return: update the column sizes stored in self.member_size """ # Make a copy of the member size temp_size = copy.deepcopy(self.member_size) # Update column sizes based on the sorted Ix member_list = ['interior column', 'exterior column'] for mem in member_list: self.construction_size[mem] = constructability_helper(temp_size[mem], IDENTICAL_SIZE_PER_STORY, self.geometry['number of story'], 'Ix')
def constructability_beam(self): """ This method is used to update the beam member size by considering the constructability (ease of construction). :return: update the beam sizes stored in self.member_size['beam'] """ # Make a deep copy of the member sizes and stored them in a new dictionary named construction_size # Use deep copy to avoid changing the variables stored in member size temp_size = copy.deepcopy(self.member_size) # Update beam size (beam size is updated based on descending order of Zx) self.construction_size['beam'] = constructability_helper(temp_size['beam'], IDENTICAL_SIZE_PER_STORY, self.geometry['number of story'], 'Ix') # Column sizes here have not been updated (just directly copy) self.construction_size['interior column'] = temp_size['interior column'] self.construction_size['exterior column'] = temp_size['exterior column']