/// <summary> /// Generate representations for nodes /// </summary> /// <param name="node"></param> protected void GenerateRepresentations(Node node) { Guid objID = Guid.Empty; if (!Links.ContainsFirst(node.GUID)) { if (!node.IsDeleted) { objID = RhinoOutput.BakePoint(node.Position); Links.Add(node.GUID, objID); } } else { objID = Links.GetSecond(node.GUID); if (node.IsDeleted) { RhinoOutput.DeleteObject(objID); objID = Guid.Empty; } else { objID = RhinoOutput.BakeOrReplacePoint(objID, node.Position); Links.Set(node.GUID, objID); } } if (objID != Guid.Empty) { RhinoOutput.SetOriginalIDUserString(objID); string layerPath = NodesLayerName; RhinoOutput.SetObjectLayer(objID, layerPath); RhinoOutput.SetObjectName(objID, node.Description); } }
/// <summary> /// Is the handle of this object (if it has one) currently hidden in Rhino? /// </summary> /// <param name="unique"></param> /// <returns></returns> public bool IsHandleHidden(Unique unique) { if (Links.ContainsFirst(unique.GUID)) { return(!RhinoOutput.ObjectVisible(Links.GetSecond(unique.GUID))); } return(false); }
/// <summary> /// Get the GUID of the handle (if any) linked to the specified model object /// </summary> /// <param name="mObj"></param> /// <returns></returns> protected Guid LinkedHandle(ModelObject mObj) { if (Links.ContainsFirst(mObj.GUID)) { Guid handleID = Links.GetSecond(mObj.GUID); return(handleID); } return(Guid.Empty); }
/// <summary> /// Generate the handle representation of an element /// </summary> /// <param name="element"></param> protected void GenerateRepresentations(Element element) { Guid objID = Guid.Empty; if (!Links.ContainsFirst(element.GUID)) { if (!element.IsDeleted) { string idString = element.GetGeometry()?.Attributes?.SourceID; if (!string.IsNullOrWhiteSpace(idString)) { objID = new Guid(idString); if (!RhinoOutput.ObjectExists(objID)) { objID = Guid.Empty; } } objID = RhinoOutput.BakeOrReplace(objID, element.GetGeometry()); Links.Add(element.GUID, objID); } } else { objID = Links.GetSecond(element.GUID); if (element.IsDeleted) { RhinoOutput.DeleteObject(objID); objID = Guid.Empty; } else { if (!_Undeleting && !_Replacing) { objID = RhinoOutput.BakeOrReplace(objID, element.GetGeometry()); Links.Set(element.GUID, objID); } } } if (objID != Guid.Empty) { RhinoOutput.SetOriginalIDUserString(objID); string layerPath = ElementsLayerPath; if (element.GetFamily() != null) { layerPath += element.GetFamily().Name; } RhinoOutput.SetObjectLayer(objID, layerPath); RhinoOutput.SetObjectName(objID, element.Description); } }