Table of Contents

Namespace PlaIO

Classes

BimxDocument

An open .bimx file: the BIMx signature followed by a PNG cover image. What follows the cover is not documented and is not interpreted.

FdbHeader

The 64-byte header of an FDB container. Bytes 0..31 are fixed; bytes 32..63 overlap the first block and their meaning is not documented, so they are only kept raw.

ObjectDirectory

A run of directory records found inside a raw block. Where a directory starts and ends is not documented: the run is an estimate (the longest stretch whose extents mostly abut), and the pair counts are reported so callers can judge it. The run can be shorter than the real directory: it stops at a stretch of more than 8 consecutive records without an abutting neighbour. It can also take in records with a count of 0 whose position repeats another record's or falls inside another extent; such records show up in PlaIO.ObjectDirectory.OverlappingPairs and PlaIO.ObjectDirectory.DuplicatePositions.

PlaBlock

One block of the index: header fields as stored, plus where the payload lies. Fields whose meaning is not documented (PlaIO.PlaBlock.Id, PlaIO.PlaBlock.Kind, PlaIO.PlaBlock.Extra, flag 0x10) are exposed raw.

PlaDocument

An open FDB container (.pla or .pln): the header, the block index and payload decoding for modes 0 and 1. The file is never loaded whole; payloads are read on request. Not thread-safe.

PlaFile

File kind detection.

Structs

ObjectDirectoryRecord

One 30-byte directory record: [u16 class][u64 pos][u32 count][GUID16]. The units of PlaIO.ObjectDirectoryRecord.Position and PlaIO.ObjectDirectoryRecord.Count are not documented.

Enums

PlaBlockMode

How the payload of a block is stored.

PlaFileKind

The kind of a file, decided by its first bytes.