@classmethod
def from_dict(cls, view_dict):
    """Create a view from a dictionary in the following format.

        .. code-block:: python

            {
            'type': 'View',
            'identifier': str,  # View identifier
            "display_name": str,  # View display name
            'position': [],  # list with position value
            'direction': [],  # list with direction value
            'up_vector': [],  # list with up_vector value
            'h_size': number,  # h_size.value
            'v_size': number,  # v_size value
            'shift': number,  # shift value
            'lift': number,  # lift value
            'view_type': number,  # view_type value
            'fore_clip': number,  # fore_clip value
            'aft_clip': number  # aft_clip value
            }
        """
    assert view_dict['type'
        ] == 'View', 'Expected View dictionary. Got {}.'.format(view_dict[
        'type'])
    view = cls(identifier=view_dict['identifier'], position=view_dict[
        'position'], direction=view_dict['direction'], up_vector=view_dict[
        'up_vector'], h_size=view_dict['h_size'], v_size=view_dict['v_size'
        ], shift=view_dict['shift'], lift=view_dict['lift'])
    view.fore_clip = view_dict['fore_clip']
    view.aft_clip = view_dict['aft_clip']
    if 'display_name' in view_dict and view_dict['display_name'] is not None:
        view.display_name = view_dict['display_name']
    return view
