private void SelectButton_Click(object sender, EventArgs e) { Inventor.ReferenceKeyManager rkm = m_app.ActiveDocument.ReferenceKeyManager; string context, key; GetContextAndKey(ReferenceKeysTreeView.SelectedNode, out context, out key); int i = GetContextIndex(context); try { byte[] bytes = new byte[] { }; rkm.StringToKey(key, ref bytes); object matchType; dynamic result = rkm.BindKeyToObject(ref bytes, i, out matchType); if (result.GetType() == Type.GetType("Invenor.ObjectCollection")) { m_app.ActiveDocument.SelectSet.SelectMultiple(result); } else { m_app.ActiveDocument.SelectSet.Select(result); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Could not bind key to object"); } }
private int LoadContext(string context) { Inventor.ReferenceKeyManager rkm = m_app.ActiveDocument.ReferenceKeyManager; byte[] bytes = new byte[] { }; rkm.StringToKey(context, ref bytes); return(rkm.LoadContextFromArray(ref bytes)); }
private byte [] GetContextBytes(string context) { byte[] bytes = new byte[] { }; context = GetContextString(context); Inventor.ReferenceKeyManager rkm = m_app.ActiveDocument.ReferenceKeyManager; rkm.StringToKey(context, bytes); return(bytes); }
private int CreateContext(out string context) { Inventor.ReferenceKeyManager rkm = m_app.ActiveDocument.ReferenceKeyManager; int index = rkm.CreateKeyContext(); byte[] bytes = new byte[] { }; rkm.SaveContextToArray(index, ref bytes); context = rkm.KeyToString(bytes); return(index); }
private void CreateReferenceKeyButton_Click(object sender, EventArgs e) { SelectSet ss = m_app.ActiveDocument.SelectSet; if (ss.Count != 1) { MessageBox.Show("Please select a single object before using this command", "No single object selected"); return; } try { string context, key; GetContextAndKey(ReferenceKeysTreeView.SelectedNode, out context, out key); int i = GetContextIndex(context); byte[] bytes = new byte[] { }; ss[1].GetReferenceKey(ref bytes, i); Inventor.ReferenceKeyManager rkm = m_app.ActiveDocument.ReferenceKeyManager; key = rkm.KeyToString(bytes); if (ReferenceKeysTreeView.SelectedNode.Nodes.ContainsKey(key)) { TreeNode existingNode = ReferenceKeysTreeView.SelectedNode.Nodes.Find(context, false)[0]; ReferenceKeysTreeView.SelectedNode = existingNode; MessageBox.Show("Such key already exists and is now highlighted in the Browser", "Duplicate key"); return; } TreeNode node = ReferenceKeysTreeView.SelectedNode.Nodes.Add(key, key); node.ImageKey = kReference; node.SelectedImageKey = kReference; node.EnsureVisible(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Could not create key"); } }
private void DeleteButton_Click(object sender, EventArgs e) { TreeNode node = ReferenceKeysTreeView.SelectedNode; if (node != null) { // if it's a context if (node.Parent == null) { int index = GetContextIndex(node.Text); if (index > 0) { Inventor.ReferenceKeyManager rkm = m_app.ActiveDocument.ReferenceKeyManager; rkm.ReleaseKeyContext(index); } } node.Remove(); EnsureDefaultContext(); } }
private void CreateContextButton_Click(object sender, EventArgs e) { string context; int i = CreateContext(out context); if (ReferenceKeysTreeView.Nodes.ContainsKey(context)) { TreeNode existingNode = ReferenceKeysTreeView.Nodes.Find(context, false)[0]; ReferenceKeysTreeView.SelectedNode = existingNode; Inventor.ReferenceKeyManager rkm = m_app.ActiveDocument.ReferenceKeyManager; rkm.ReleaseKeyContext(i); MessageBox.Show("A suitable context already exists and is now highlighted in the Browser", "Duplicate context"); return; } TreeNode node = ReferenceKeysTreeView.Nodes.Add(context, $"{context} [{i}]"); node.ImageKey = kContext; node.SelectedImageKey = kContext; node.EnsureVisible(); }
private InvReferenceKeyManager(Inventor.ReferenceKeyManager invReferenceKeyManager) { InternalReferenceKeyManager = invReferenceKeyManager; }
public static InvReferenceKeyManager ByInvReferenceKeyManager(Inventor.ReferenceKeyManager invReferenceKeyManager) { return(new InvReferenceKeyManager(invReferenceKeyManager)); }