Пример #1
0
        /// <summary>
        /// 设置动态块的动态属性
        /// </summary>
        /// <param name="blockId">动态块的ObjectId</param>
        /// <param name="propName">动态属性的名称</param>
        /// <param name="value">动态属性的值</param>
        public static void SetDynBlockValue(this ObjectId blockId, string propName, object value)
        {
            var props = blockId.GetDynProperties();//获得动态块的所有动态属性

            //遍历动态属性
            foreach (DynamicBlockReferenceProperty prop in props)
            {
                //如果动态属性的名称与输入的名称相同且为可读
                if (prop.ReadOnly == false && prop.PropertyName == propName)
                {
                    //判断动态属性的类型并通过类型转化设置正确的动态属性值
                    switch (prop.PropertyTypeCode)
                    {
                    case (short)DynBlockPropTypeCode.Short:    //短整型
                        prop.Value = Convert.ToInt16(value);
                        break;

                    case (short)DynBlockPropTypeCode.Long:    //长整型
                        prop.Value = Convert.ToInt64(value);
                        break;

                    case (short)DynBlockPropTypeCode.Real:    //实型
                        prop.Value = Convert.ToDouble(value);
                        break;

                    default:    //其它
                        prop.Value = value;
                        break;
                    }
                    break;
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 获取动态块的动态属性值
        /// </summary>
        /// <param name="blockId">动态块的Id</param>
        /// <param name="propName">需要查找的动态属性名</param>
        /// <returns>返回指定动态属性的值</returns>
        public static string GetDynBlockValue(this ObjectId blockId, string propName)
        {
            string propValue = null;                       //用于返回动态属性值的变量
            var    props     = blockId.GetDynProperties(); //获得动态块的所有动态属性

            //遍历动态属性
            foreach (DynamicBlockReferenceProperty prop in props)
            {
                //如果动态属性的名称与输入的名称相同
                if (prop.PropertyName == propName)
                {
                    //获取动态属性值并结束遍历
                    propValue = prop.Value.ToString();
                    break;
                }
            }
            return(propValue);//返回动态属性值
        }