public override double GetDimension <T>(T plate, DimensionKind kind) { BuiltInParameter param = Plate.GetParameterByKind(kind); Subelement plateAsSubelem = plate as Subelement; ParameterValue lengthParamValue = plateAsSubelem.GetParameterValue(new ElementId(param)); if (lengthParamValue == null) { throw new Exception("Нет параметра " + Enum.GetName(typeof(DimensionKind), kind) + " в пластине " + plateAsSubelem.Element.Id.IntegerValue.ToString()); } DoubleParameterValue lengthDoubleValue = lengthParamValue as DoubleParameterValue; return(lengthDoubleValue.Value); }
public PlateInJoint(Subelement subelem, RVTDocument doc, Settings sets) { _subelem = subelem; Reference rf = _subelem.GetReference(); FilerObject filerObj = AdvanceSteelUtils.GetFilerObject(doc, rf); Autodesk.AdvanceSteel.Modelling.Plate pl = filerObj as Autodesk.AdvanceSteel.Modelling.Plate; //_volume = pl.Volume / (1000000 * 29.504); _volume = 1.0419239 * pl.Volume / (29504000); ParameterValue pv = _subelem.GetParameterValue(new ElementId(BuiltInParameter.STRUCTURAL_MATERIAL_PARAM)); ElementIdParameterValue idpv = pv as ElementIdParameterValue; materialId = idpv.Value; _thickness = GetDimension <Subelement>(_subelem, DimensionKind.Thickness); #if !R2019 if (sets.writePlatesLengthWidth) { _length = GetDimension(_subelem, DimensionKind.Length); _width = GetDimension(_subelem, DimensionKind.Width); } #endif }