'A shortcut allowing us to instantiate a new type from an attribute.'

def __call__(self, semantic_value=None, **kwargs):

    result = semantic_value
    if (semantic_value is None):
        result = self.attribute_type(**kwargs)
    elif (not isinstance(semantic_value, self.attribute_type)):
        result = self.attribute_type(semantic_value, **kwargs)
    if getattr(result, 'attribute_instance', None):
        result = result.Copy()
    result.attribute_instance = self
    return result
