internal RemoteGlobalParameter(GlobalParameter parameter, Units units) { Name = parameter.Name; Type = string.Empty; Value = string.Empty; if (parameter.GetValue().GetType() == typeof(StringParameterValue)) { StringParameterValue dvalue = parameter.GetValue() as StringParameterValue; Type = "Text"; Value = dvalue.Value; } else if (parameter.GetValue().GetType() == typeof(IntegerParameterValue)) { IntegerParameterValue dvalue = parameter.GetValue() as IntegerParameterValue; Type = "Integer"; Value = dvalue.Value.ToString(); } else if (parameter.GetValue().GetType() == typeof(DoubleParameterValue)) { UnitType utype = parameter.GetDefinition().UnitType; DisplayUnitType dunit = units.GetFormatOptions(utype).DisplayUnits; DoubleParameterValue dvalue = parameter.GetValue() as DoubleParameterValue; Type = "Number"; Value = UnitUtils.ConvertFromInternalUnits(dvalue.Value, dunit).ToString(); } else if (parameter.GetValue().GetType() == typeof(ElementIdParameterValue)) { ElementIdParameterValue dvalue = parameter.GetValue() as ElementIdParameterValue; Type = "Element"; if (dvalue.Value.ToString() != "-1") { string elementname = parameter.Document.GetElement(dvalue.Value).Name; Value = elementname; } } }
internal string EditParameter(Document doc, string name, string value) { try { IList <ElementId> globalparamids = GlobalParametersManager.GetGlobalParametersOrdered(doc); foreach (ElementId gid in globalparamids) { GlobalParameter parameter = doc.GetElement(gid) as GlobalParameter; if (!GlobalParametersManager.IsValidGlobalParameter(doc, parameter.Id)) { continue; } if (parameter.IsDrivenByFormula) { continue; } if (parameter.Name == name) { if (parameter.GetValue().GetType() == typeof(StringParameterValue)) { StringParameterValue dvalue = parameter.GetValue() as StringParameterValue; dvalue.Value = value; parameter.SetValue(dvalue); } else if (parameter.GetValue().GetType() == typeof(IntegerParameterValue)) { if (value == "Yes") { value = "1"; } else { value = "0"; } IntegerParameterValue dvalue = parameter.GetValue() as IntegerParameterValue; dvalue.Value = int.Parse(value); parameter.SetValue(dvalue); } else if (parameter.GetValue().GetType() == typeof(DoubleParameterValue)) { DoubleParameterValue dvalue = parameter.GetValue() as DoubleParameterValue; UnitType utype = parameter.GetDefinition().UnitType; DisplayUnitType dunit = Units.GetFormatOptions(utype).DisplayUnits; double dp = double.Parse(value); dvalue.Value = UnitUtils.ConvertToInternalUnits(dp, dunit); parameter.SetValue(dvalue); } else if (parameter.GetValue().GetType() == typeof(ElementIdParameterValue)) { ElementIdParameterValue dvalue = parameter.GetValue() as ElementIdParameterValue; ElementId mat = FindMaterialByName(doc, value); if (mat != null) { dvalue.Value = mat; parameter.SetValue(dvalue); } } } } return(value); } catch (Exception e) { return(e.Message); } }