public static bool TrySetUserString <T>(this GeometryBase geometry, string key, T value, T def) where T : IConvertible { if (value.Equals(def)) { return(geometry.SetUserString(key, null)); } var stringValue = (string)System.Convert.ChangeType(value, typeof(string), System.Globalization.CultureInfo.InvariantCulture); return(geometry.SetUserString(key, stringValue)); }
public void SaveData(GeometryBase geometry) { if (elementSizeCheckBox.Checked) { geometry.SetUserString("Ibra.MaxElementSize", elementSizeTextBox.Text); } else { geometry.UserDictionary.Remove("Ibra.MaxElementSize"); } if (polynomialDegreeCheckBox.Checked) { geometry.SetUserString("Ibra.MinPolynomialDegree", elementSizeTextBox.Text); } else { geometry.UserDictionary.Remove("Ibra.MinPolynomialDegree"); } }
/// <summary> /// Set graphic attributes to <see cref="GeometryBase"/> <paramref name="geometry"/> from Context /// </summary> /// <param name="geometry"></param> /// <returns><paramref name="geometry"/> with graphic attributes</returns> static GeometryBase SetGraphicAttributes(GeometryBase geometry) { if (geometry is object) { var context = Context.Peek; if (context.Element is object) { if (context.GraphicsStyleId.IsValid() && context.Element.Document.GetElement(context.GraphicsStyleId) is DB.GraphicsStyle graphicsStyle) { var category = graphicsStyle.GraphicsStyleCategory; geometry.SetUserString(DB.BuiltInParameter.FAMILY_ELEM_SUBCATEGORY.ToString(), category.Id.IntegerValue.ToString()); } if (context.MaterialId.IsValid() && context.Element.Document.GetElement(context.MaterialId) is DB.Material material) { geometry.SetUserString(DB.BuiltInParameter.MATERIAL_ID_PARAM.ToString(), material.Id.IntegerValue.ToString()); } } } return(geometry); }