public void WriteValue(IBlockParameter parameter, bool isRequired = true) { if (this.bref == null) { return; } var para = _pc.Cast <DynamicBlockReferenceProperty>().FirstOrDefault(n => n.PropertyName.Equals(parameter.Name, StringComparison.OrdinalIgnoreCase)); if (para == null) { if (isRequired) { throw new Bargool.Acad.Library.Exceptions.WrongDataException("Нет тут параметра " + parameter.Name); } else { return; } } double value = double.Parse(parameter.Value); if (value < 0) { throw new Bargool.Acad.Library.Exceptions.WrongDataException("Такая геометрия невозможна"); } if ((double)para.Value != value) { para.Value = value; } }
public IEnumerable <IBlockParameter> ReadAttributes(IBlockParameter template) { if (this.bref == null) { return(null); } if (this._ac == null) { Initialize(bref.AttributeCollection); } return (this._ac.Cast <ObjectId>() .Select(id => id.GetObject <AttributeReference>()) .Select(att => template.Create(att.Tag, att.TextString))); }
public IEnumerable <IBlockParameter> ReadDynamicParameters(IBlockParameter template) { if (this.bref == null) { return(null); } if (_pc == null) { Initialize(bref.DynamicBlockReferencePropertyCollection); } return (_pc.Cast <DynamicBlockReferenceProperty>() .Select(prop => template.Create(prop.PropertyName, prop.Value.ToString()))); }
public IBlockParameter ReadAttribute(IBlockParameter template, string name) { if (this.bref == null) { return(null); } if (this._ac == null) { Initialize(bref.AttributeCollection); } var att = this._ac.Cast <ObjectId>() .Select(id => id.GetObject <AttributeReference>()) .FirstOrDefault(a => a.Tag.Equals(name, StringComparison.OrdinalIgnoreCase)); return(att != null?template.Create(att.Tag, att.TextString) : null); }
public IBlockParameter ReadDynamicParameter(IBlockParameter template, string name) { if (this.bref == null) { return(null); } if (_pc == null) { Initialize(bref.DynamicBlockReferencePropertyCollection); } DynamicBlockReferenceProperty prop = _pc.Cast <DynamicBlockReferenceProperty>() .FirstOrDefault(p => p.PropertyName.Equals(name, StringComparison.OrdinalIgnoreCase)); if (prop == null) { return(null); } IBlockParameter result = template.Create(prop.PropertyName, prop.Value.ToString()); return(result); }