Example #1
0
        internal static DxfBlockRecord FromBuffer(DxfCodePairBufferReader buffer)
        {
            var item = new DxfBlockRecord();
            while (buffer.ItemsRemain)
            {
                var pair = buffer.Peek();
                if (pair.Code == 0)
                {
                    break;
                }

                buffer.Advance();
                switch (pair.Code)
                {
                    case DxfCodePairGroup.GroupCodeNumber:
                        var groupName = DxfCodePairGroup.GetGroupName(pair.StringValue);
                        item.ExtensionDataGroups.Add(DxfCodePairGroup.FromBuffer(buffer, groupName));
                        break;
                    case 340:
                        item.LayoutHandle = UIntHandle(pair.StringValue);
                        break;
                    case 70:
                        item.InsertionUnits = (DxfUnits)(pair.ShortValue);
                        break;
                    case 280:
                        item.Explodability = BoolShort(pair.ShortValue);
                        break;
                    case 281:
                        item.Scalability = BoolShort(pair.ShortValue);
                        break;
                    case 310:
                        item._bitmapPreviewData.Add((pair.StringValue));
                        break;
                    case (int)DxfXDataType.ApplicationName:
                        item.XData = DxfXData.FromBuffer(buffer, pair.StringValue);
                        break;
                    default:
                        item.TrySetPair(pair);
                        break;
                }
            }

            return item;
        }