static void Start() { objectPreviews = new Dictionary <Guid, DocumentPreviewServer>(); using (var service = DBES.ExternalServiceRegistry.GetService(DBES.ExternalServices.BuiltInExternalServices.DirectContext3DService) as DBES.MultiServerService) { var activeServerIds = service.GetActiveServerIds(); foreach (var o in ActiveDocument.Objects) { if (!ObjectPrimitive.IsSupportedObject(o, true)) { continue; } var preview = new DocumentPreviewServer(o); var serverId = preview.GetServerId(); objectPreviews.Add(serverId, preview); service.AddServer(preview); activeServerIds.Add(serverId); } service.SetActiveServers(activeServerIds); } Revit.RefreshActiveView(); }
static void RhinoDoc_DeleteRhinoObject(object sender, RhinoObjectEventArgs e) { if (e.TheObject.Document == ActiveDocument && ObjectPrimitive.IsSupportedObject(e.TheObject, false)) { Revit.EnqueueReadAction((doc, canceled) => objectPreviews[e.TheObject.Id]?.Unregister()); Revit.RefreshActiveView(); } }
static void RhinoDoc_AddRhinoObject(object sender, RhinoObjectEventArgs e) { if (e.TheObject.Document == ActiveDocument && ObjectPrimitive.IsSupportedObject(e.TheObject, true)) { Revit.EnqueueReadAction((doc, canceled) => new DocumentPreviewServer(e.TheObject).Register()); Revit.RefreshActiveView(); } }