static string FamilyParamValueString( FamilyType t, FamilyParameter fp, Document doc) { string value = t.AsValueString(fp); switch (fp.StorageType) { case StorageType.Double: value = Util.RealString( (double)t.AsDouble(fp)) + " (double)"; break; case StorageType.ElementId: ElementId id = t.AsElementId(fp); Element e = doc.GetElement(id); value = id.IntegerValue.ToString() + " (" + Util.ElementDescription(e) + ")"; break; case StorageType.Integer: value = t.AsInteger(fp).ToString() + " (int)"; break; case StorageType.String: value = "'" + t.AsString(fp) + "' (string)"; break; } return(value); }
public static string ParameterToString(Document doc, FamilyParameter param, FamilyType type) { if (!type.HasValue(param)) { return("无"); } if (param.Definition.ParameterType == ParameterType.Invalid) { return("不可用"); } switch (param.StorageType) { case StorageType.Double: #if R2014 var uStr = FormatUtils.Format(doc, param.Definition.UnitType, type.AsDouble(param).Value); #else var uStr = UnitFormatUtils.Format(doc.GetUnits(), param.Definition.UnitType, type.AsDouble(param).Value, false, false); #endif return(uStr); //var uStr = string.Empty; //if (param.Definition.ParameterType == ParameterType.Length) //{ // uStr = GetParamaterUnit(param.DisplayUnitType); //} //var dStr = param.AsValueString(); //if (!String.IsNullOrEmpty(uStr) && !dStr.EndsWith(uStr)) dStr += uStr; //return dStr; case StorageType.Integer: var v = type.AsInteger(param).Value; if (param.Definition.ParameterType == ParameterType.YesNo) { if (v == 0) { return("否"); } return("是"); } #if R2014 return(FormatUtils.Format(doc, param.Definition.UnitType, v)); #else return(UnitFormatUtils.Format(doc.GetUnits(), param.Definition.UnitType, v, false, false)); #endif case StorageType.String: return(type.AsString(param)); case StorageType.ElementId: ElementId idVal = type.AsElementId(param); return(AsElementName(doc, idVal)); case StorageType.None: default: return("无"); } }
private List <Material> GetFamilyTypesMaterials(Document doc, Family modifiedFamily) { List <Material> typesMaterials = new List <Material>(); Document familyDoc = doc.EditFamily(modifiedFamily); FamilyManager familyManager = familyDoc.FamilyManager; FamilyTypeSet familyTypes = familyManager.Types; FamilyTypeSetIterator iterator = familyTypes.ForwardIterator(); iterator.Reset(); string types = string.Empty; using (Transaction trans = new Transaction(familyDoc, "MaterialParameter")) { trans.Start(); while (iterator.MoveNext()) { familyManager.CurrentType = iterator.Current as FamilyType; FamilyType type = familyManager.CurrentType; string param = string.Empty; foreach (FamilyParameter parameter in familyManager.Parameters) { if (parameter.Definition.Name.Contains("Mat")) { Material material = doc.GetElement(type.AsElementId(parameter)) as Material; if (material != null) { typesMaterials.Add(material); } } } } trans.Commit(); } return(typesMaterials); }
static string FamilyParamValueString( FamilyType t, FamilyParameter fp, Document doc) { string value = t.AsValueString( fp ); switch( fp.StorageType ) { case StorageType.Double: value = Util.RealString( ( double ) t.AsDouble( fp ) ) + " (double)"; break; case StorageType.ElementId: ElementId id = t.AsElementId( fp ); Element e = doc.GetElement( id ); value = id.IntegerValue.ToString() + " (" + Util.ElementDescription( e ) + ")"; break; case StorageType.Integer: value = t.AsInteger( fp ).ToString() + " (int)"; break; case StorageType.String: value = "'" + t.AsString( fp ) + "' (string)"; break; } return value; }
public static ElementId FamilyParamElementId(FamilyType t, FamilyParameter fp) { ElementId id = t.AsElementId(fp); return(id); }