private string GetAttributeString() { var attributes = new Dictionary <string, string>(); attributes.Add("protocol", this.Protocol.ToString()); attributes.Add("gateway", this.Gateway); attributes.Add("path", Path); attributes.Add("plc", PlcType.ToString().ToLower()); attributes.Add("elem_size", ElementSize?.ToString()); attributes.Add("elem_count", ElementCount?.ToString()); attributes.Add("name", Name); attributes.Add("read_cache_ms", ReadCacheMillisecondDuration?.ToString()); if (UseConnectedMessaging.HasValue) { attributes.Add("use_connected_msg", UseConnectedMessaging.Value ? "1" : "0"); } string separator = "&"; return(string.Join(separator, attributes.Where(attr => attr.Value != null).Select(attr => $"{attr.Key}={attr.Value}"))); }
/// <summary> /// Converts value to string. /// </summary> public override string ConvertToString(object value) { ElementSize elementSize = value as ElementSize; return(elementSize.ToString()); }
public bool BakeGeometry(RhinoDoc doc, ObjectAttributes baking_attributes, out Guid obj_guid) { if (Value != null) { var att = baking_attributes.Duplicate(); // set user strings att.SetUserString("SOF_OBJ_TYPE", "SLN"); att.SetUserString("SOF_ID", Math.Max(0, Id).ToString()); if (GroupId > 0) { att.SetUserString("SOF_GRP", GroupId.ToString()); } if (SectionIdStart > 0) { att.SetUserString("SOF_STYP", ElementType); att.SetUserString("SOF_STYP2", "E"); att.SetUserString("SOF_SNO", SectionIdStart.ToString()); if (SectionIdEnd > 0) { att.SetUserString("SOF_SNOE", SectionIdEnd.ToString()); } else { att.SetUserString("SOF_SNOE", "SOF_PROP_COMBO_NONE"); } } if (ElementSize != 0.0) { att.SetUserString("SOF_SDIV", ElementSize.ToString()); } if (DirectionLocalZ.Length > 1.0E-6) { var dir_z = DirectionLocalZ; dir_z.Unitize(); att.SetUserString("SOF_DRX", dir_z.X.ToString("F6")); att.SetUserString("SOF_DRY", dir_z.Y.ToString("F6")); att.SetUserString("SOF_DRZ", dir_z.Z.ToString("F6")); } if (string.IsNullOrWhiteSpace(fixLiteral) == false) { string fix_literal = FixLiteral.Replace("PP", "PXPYPZ").Replace("MM", "MXMYMZ"); if (fix_literal == "F") { fix_literal = "PXPYPZMXMYMZ"; } att.SetUserString("SOF_FIX", fix_literal); } if (string.IsNullOrWhiteSpace(UserText) == false) { att.SetUserString("SOF_USERTXT", UserText); } obj_guid = doc.Objects.AddCurve(Value, att); } else { obj_guid = new Guid(); } return(true); }
public bool BakeGeometry(RhinoDoc doc, ObjectAttributes baking_attributes, out Guid obj_guid) { if (Value != null) { var att = baking_attributes.Duplicate(); att.SetUserString("SOF_OBJ_TYPE", "SAR"); att.SetUserString("SOF_ID", Math.Max(0, Id).ToString()); if (GroupId > 0) { att.SetUserString("SOF_GRP", GroupId.ToString()); } if (MaterialId > 0) { att.SetUserString("SOF_MNO", MaterialId.ToString()); } if (ReinforcementId > 0) { att.SetUserString("SOF_MRF", ReinforcementId.ToString()); } att.SetUserString("SOF_T", Thickness.ToString()); att.SetUserString("SOF_QREF", Alignment); if (MeshOptions == "AUTO") { att.SetUserString("SOF_MCTL", "0"); } else if (MeshOptions == "REGM") { att.SetUserString("SOF_MCTL", "1"); } else if (MeshOptions == "SNGQ") { att.SetUserString("SOF_MCTL", "2"); } else if (MeshOptions == "OFF") { att.SetUserString("SOF_MCTL", "-1"); } if (ElementSize != 0.0) { att.SetUserString("SOF_HMIN", ElementSize.ToString()); } if (DirectionLocalX.Length > 1.0e-6) { var dir_x = DirectionLocalX; dir_x.Unitize(); att.SetUserString("SOF_DRX", dir_x.X.ToString("F6")); att.SetUserString("SOF_DRY", dir_x.Y.ToString("F6")); att.SetUserString("SOF_DRZ", dir_x.Z.ToString("F6")); } if (string.IsNullOrWhiteSpace(UserText) == false) { att.SetUserString("SOF_USERTXT", UserText); } obj_guid = doc.Objects.AddBrep(Value, att); } else { obj_guid = new Guid(); } return(true); }