private void PrefabViewModelRemovedFromSet(RealtimeSet <RealtimeViewModel> set, RealtimeViewModel model, bool remote)
 {
     if (prefabRealtimeViewModelRemoved != null)
     {
         prefabRealtimeViewModelRemoved(this, model, remote);
     }
 }
        public void Reset(IModel roomModel)
        {
            // Tear Down
            if (_prefabViewModels != null)
            {
                _prefabViewModels.modelAdded   -= PrefabViewModelAddedToSet;
                _prefabViewModels.modelRemoved -= PrefabViewModelRemovedFromSet;
            }

            // Set Up
            _roomModel                      = roomModel;
            _sceneViewModels                = new RealtimeSet <RealtimeViewModel>();
            _prefabViewModels               = new RealtimeSet <RealtimeViewModel>();
            _prefabViewModels.modelAdded   += PrefabViewModelAddedToSet;
            _prefabViewModels.modelRemoved += PrefabViewModelRemovedFromSet;

            SetUpSerialization();
        }