Exemple #1
0
        public void DoBinding(MaterialInfo materialParams,
                              MaterialLayerDescription layerDescription,
                              Autodesk.Revit.DB.DisplayUnit?unitSystem)
        {
            if (layerDescription != null)
            {
                string unitThicknessName = "LayerThickness";
                string unitOffsetName    = "LayerOffset";

                string unitThickness;
                string unitOffset;
                if (null == unitSystem)
                {
                    unitThickness = UnitsAssignment.GetUnitSymbol(unitThicknessName, ElementInfoUnits.Assignments);
                    unitOffset    = UnitsAssignment.GetUnitSymbol(unitOffsetName, ElementInfoUnits.Assignments);
                }
                else
                {
                    unitThickness = UnitsAssignment.GetUnitSymbol(unitThicknessName, ElementInfoUnits.Assignments, (Autodesk.Revit.DB.DisplayUnit)unitSystem);
                    unitOffset    = UnitsAssignment.GetUnitSymbol(unitOffsetName, ElementInfoUnits.Assignments, (Autodesk.Revit.DB.DisplayUnit)unitSystem);
                }

                string stringThicknessValue = layerDescription.LayerThickness.ToString();
                string stringOffsetValue    = layerDescription.LayerOffset.ToString();

                if (null == unitSystem)
                {
                    stringThicknessValue = UnitsAssignment.FormatToRevitUI(unitThicknessName, layerDescription.LayerThickness, ElementInfoUnits.Assignments);
                    stringOffsetValue    = UnitsAssignment.FormatToRevitUI(unitOffsetName, layerDescription.LayerOffset, ElementInfoUnits.Assignments);
                }

                LayerThickness.Content = stringThicknessValue + " " + unitThickness;
                LayerOffset.Content    = stringOffsetValue + " " + unitOffset;

                LayerDescription.Visibility = System.Windows.Visibility.Visible;
            }
            else
            {
                LayerDescription.Visibility = System.Windows.Visibility.Collapsed;
            }

            List <MaterialParameterDescription> matParDescrList = new List <MaterialParameterDescription>();

            if (materialParams.Category != MaterialCategory.Undefined)
            {
                MaterialName.Content        = materialParams.Properties.Name;
                MaterialDescription.Content = materialParams.Properties.Description;

                MaterialCharacteristics materialCharacteristics = materialParams.Characteristics;
                foreach (object o in materialCharacteristics)
                {
                    List <MaterialParameterDescription> matParDescr = ParameterBinding(o, materialCharacteristics, MaterialCharacteristicsUnits.Assignments, unitSystem);
                    if (null == matParDescr)
                    {
                        continue;
                    }
                    matParDescrList.AddRange(matParDescr);
                }
            }

            switch (materialParams.Category)
            {
            case MaterialCategory.Concrete:
                MaterialConcreteCharacteristics concrete = (MaterialConcreteCharacteristics)materialParams.Characteristics.Specific;
                foreach (object o in concrete)
                {
                    List <MaterialParameterDescription> matParDescr = ParameterBinding(o, concrete, MaterialConcreteCharacteristicsUnits.Assignments, unitSystem);
                    if (matParDescr != null)
                    {
                        matParDescrList.AddRange(matParDescr);
                    }
                }
                break;

            case MaterialCategory.Metal:
                MaterialMetalCharacteristics metal = (MaterialMetalCharacteristics)materialParams.Characteristics.Specific;
                foreach (object o in metal)
                {
                    List <MaterialParameterDescription> matParDescr = ParameterBinding(o, metal, MaterialMetalCharacteristicsUnits.Assignments, unitSystem);
                    if (matParDescr != null)
                    {
                        matParDescrList.AddRange(matParDescr);
                    }
                }

                break;

            case MaterialCategory.Timber:
                MaterialTimberCharacteristics timber = (MaterialTimberCharacteristics)materialParams.Characteristics.Specific;
                foreach (object o in timber)
                {
                    List <MaterialParameterDescription> matParDescr = ParameterBinding(o, timber, MaterialTimberCharacteristicsUnits.Assignments, unitSystem);
                    if (matParDescr != null)
                    {
                        matParDescrList.AddRange(matParDescr);
                    }
                }
                break;
            }

            materialParameters.ItemsSource = matParDescrList;
        }
Exemple #2
0
        public void DoBinding(MaterialInfo materialParams, Autodesk.Revit.DB.DisplayUnit?unitSystem)
        {
            List <MaterialParameterDescription> matParDescrList = new List <MaterialParameterDescription>();

            if (materialParams.Category != MaterialCategory.Undefined)
            {
                MaterialName.Content        = materialParams.Properties.Name;
                MaterialDescription.Content = materialParams.Properties.Description;

                MaterialCharacteristics materialCharacteristics = materialParams.Characteristics;
                foreach (object o in materialCharacteristics)
                {
                    List <MaterialParameterDescription> matParDescr = ParameterBinding(o, materialCharacteristics, MaterialCharacteristicsUnits.Assignments, unitSystem);
                    if (null == matParDescr)
                    {
                        continue;
                    }
                    matParDescrList.AddRange(matParDescr);
                }
            }

            switch (materialParams.Category)
            {
            case MaterialCategory.Concrete:
                MaterialConcreteCharacteristics concrete = (MaterialConcreteCharacteristics)materialParams.Characteristics.Specific;
                foreach (object o in concrete)
                {
                    List <MaterialParameterDescription> matParDescr = ParameterBinding(o, concrete, MaterialConcreteCharacteristicsUnits.Assignments, unitSystem);
                    if (matParDescr != null)
                    {
                        matParDescrList.AddRange(matParDescr);
                    }
                }
                break;

            case MaterialCategory.Metal:
                MaterialMetalCharacteristics metal = (MaterialMetalCharacteristics)materialParams.Characteristics.Specific;
                foreach (object o in metal)
                {
                    List <MaterialParameterDescription> matParDescr = ParameterBinding(o, metal, MaterialMetalCharacteristicsUnits.Assignments, unitSystem);
                    if (matParDescr != null)
                    {
                        matParDescrList.AddRange(matParDescr);
                    }
                }

                break;

            case MaterialCategory.Timber:
                MaterialTimberCharacteristics timber = (MaterialTimberCharacteristics)materialParams.Characteristics.Specific;
                foreach (object o in timber)
                {
                    List <MaterialParameterDescription> matParDescr = ParameterBinding(o, timber, MaterialTimberCharacteristicsUnits.Assignments, unitSystem);
                    if (matParDescr != null)
                    {
                        matParDescrList.AddRange(matParDescr);
                    }
                }
                break;
            }

            materialParameters.ItemsSource = matParDescrList;
        }