def build(self, tree): self.diagram = Diagram() self.diagram = self.instantiate(self.diagram, None, tree) self.update_node_order() self.update_edge_order() self.update_altblock_ylevel() self.diagram.colwidth = len(self.diagram.nodes) self.diagram.colheight = len(self.diagram.edges) + 1 for sep in self.diagram.separators: self.diagram.edges.remove(sep) if self.diagram.activation != 'none': self.create_activities() if self.diagram.autonumber: self.update_label_numbered() return self.diagram