ifc-reader-2 1.3.4 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,9 +41,60 @@ export declare class ViralutionIFCModel {
41
41
  Materials: RenderMaterial[];
42
42
  Elements: ViralutionElement[];
43
43
  Data: ViralutionInformation;
44
+ /**
45
+ * Deduplicated BIM information (v3 format).
46
+ * Same logical content as `Data` but property groups shared by many
47
+ * elements (psets, type properties, identical attributes) are stored
48
+ * once in a template table and referenced by index — typically 10-100x
49
+ * smaller for models with many repeated elements.
50
+ */
51
+ DataV3: ViralutionInformationV3 | null;
44
52
  CameraData: ViralutionCamera;
45
53
  Translation: number[];
46
54
  }
55
+ /**
56
+ * Parameter definition: the per-parameter metadata that never varies
57
+ * between elements. Stored once in `ViralutionInformationV3.Defs` and
58
+ * referenced by index from templates and element records.
59
+ */
60
+ export interface ParamDefV3 {
61
+ name: string;
62
+ /** Display group (e.g. IFC property set name, "Type", "Identity"). */
63
+ group?: string;
64
+ units?: string;
65
+ applicationInternalName?: string;
66
+ applicationUnitType?: string;
67
+ applicationUnit?: string;
68
+ isShared?: boolean;
69
+ isReadOnly?: boolean;
70
+ isTypeParameter?: boolean;
71
+ }
72
+ /** A single parameter value: [defIndex, value]. */
73
+ export type ParamPairV3 = [number, any];
74
+ /**
75
+ * Per-element record: `t` references shared templates (deduplicated
76
+ * parameter groups), `p` holds element-own parameters (identity fields
77
+ * like GlobalId/Tag that would defeat deduplication).
78
+ */
79
+ export interface ElementRecordV3 {
80
+ t?: number[];
81
+ p?: ParamPairV3[];
82
+ }
83
+ /**
84
+ * Deduplicated BIM information. Identical parameter groups across
85
+ * elements collapse into one entry of `Templates`; each element only
86
+ * stores template indices plus its own unique parameters.
87
+ */
88
+ export interface ViralutionInformationV3 {
89
+ Version: 3;
90
+ Defs: ParamDefV3[];
91
+ Templates: ParamPairV3[][];
92
+ Elements: {
93
+ [elementId: string]: ElementRecordV3;
94
+ };
95
+ Relationships?: ViralutionRelationship[];
96
+ }
97
+ export declare function isInformationV3(data: unknown): data is ViralutionInformationV3;
47
98
  export declare class ViralutionInformation {
48
99
  Data: {
49
100
  [key: number]: {