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; }