コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
 /// <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);
 }
コード例 #3
0
 /// <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);
 }
コード例 #4
0
        /// <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);
            }
        }