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);
        }
Ejemplo n.º 2
0
        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("无");
            }
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 5
0
        public static ElementId FamilyParamElementId(FamilyType t, FamilyParameter fp)
        {
            ElementId id = t.AsElementId(fp);

            return(id);
        }