@ifc-lite/drawing-2d 1.4.0
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.
- package/LICENSE +373 -0
- package/dist/drawing-generator.d.ts +80 -0
- package/dist/drawing-generator.d.ts.map +1 -0
- package/dist/drawing-generator.js +281 -0
- package/dist/drawing-generator.js.map +1 -0
- package/dist/edge-extractor.d.ts +47 -0
- package/dist/edge-extractor.d.ts.map +1 -0
- package/dist/edge-extractor.js +204 -0
- package/dist/edge-extractor.js.map +1 -0
- package/dist/gpu-section-cutter.d.ts +42 -0
- package/dist/gpu-section-cutter.d.ts.map +1 -0
- package/dist/gpu-section-cutter.js +405 -0
- package/dist/gpu-section-cutter.js.map +1 -0
- package/dist/graphic-overrides/index.d.ts +10 -0
- package/dist/graphic-overrides/index.d.ts.map +1 -0
- package/dist/graphic-overrides/index.js +8 -0
- package/dist/graphic-overrides/index.js.map +1 -0
- package/dist/graphic-overrides/presets.d.ts +22 -0
- package/dist/graphic-overrides/presets.d.ts.map +1 -0
- package/dist/graphic-overrides/presets.js +283 -0
- package/dist/graphic-overrides/presets.js.map +1 -0
- package/dist/graphic-overrides/rule-engine.d.ts +64 -0
- package/dist/graphic-overrides/rule-engine.d.ts.map +1 -0
- package/dist/graphic-overrides/rule-engine.js +438 -0
- package/dist/graphic-overrides/rule-engine.js.map +1 -0
- package/dist/graphic-overrides/types.d.ts +200 -0
- package/dist/graphic-overrides/types.d.ts.map +1 -0
- package/dist/graphic-overrides/types.js +5 -0
- package/dist/graphic-overrides/types.js.map +1 -0
- package/dist/hatch-generator.d.ts +76 -0
- package/dist/hatch-generator.d.ts.map +1 -0
- package/dist/hatch-generator.js +282 -0
- package/dist/hatch-generator.js.map +1 -0
- package/dist/hidden-line.d.ts +64 -0
- package/dist/hidden-line.d.ts.map +1 -0
- package/dist/hidden-line.js +318 -0
- package/dist/hidden-line.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/line-merger.d.ts +35 -0
- package/dist/line-merger.d.ts.map +1 -0
- package/dist/line-merger.js +265 -0
- package/dist/line-merger.js.map +1 -0
- package/dist/math.d.ts +90 -0
- package/dist/math.d.ts.map +1 -0
- package/dist/math.js +284 -0
- package/dist/math.js.map +1 -0
- package/dist/openings/index.d.ts +7 -0
- package/dist/openings/index.d.ts.map +1 -0
- package/dist/openings/index.js +10 -0
- package/dist/openings/index.js.map +1 -0
- package/dist/openings/opening-filter.d.ts +61 -0
- package/dist/openings/opening-filter.d.ts.map +1 -0
- package/dist/openings/opening-filter.js +244 -0
- package/dist/openings/opening-filter.js.map +1 -0
- package/dist/openings/opening-relationship-builder.d.ts +35 -0
- package/dist/openings/opening-relationship-builder.d.ts.map +1 -0
- package/dist/openings/opening-relationship-builder.js +121 -0
- package/dist/openings/opening-relationship-builder.js.map +1 -0
- package/dist/openings/opening-utils.d.ts +55 -0
- package/dist/openings/opening-utils.d.ts.map +1 -0
- package/dist/openings/opening-utils.js +128 -0
- package/dist/openings/opening-utils.js.map +1 -0
- package/dist/polygon-builder.d.ts +62 -0
- package/dist/polygon-builder.d.ts.map +1 -0
- package/dist/polygon-builder.js +261 -0
- package/dist/polygon-builder.js.map +1 -0
- package/dist/section-cutter.d.ts +49 -0
- package/dist/section-cutter.d.ts.map +1 -0
- package/dist/section-cutter.js +220 -0
- package/dist/section-cutter.js.map +1 -0
- package/dist/sheet/frame-renderer.d.ts +28 -0
- package/dist/sheet/frame-renderer.d.ts.map +1 -0
- package/dist/sheet/frame-renderer.js +199 -0
- package/dist/sheet/frame-renderer.js.map +1 -0
- package/dist/sheet/frame-types.d.ts +57 -0
- package/dist/sheet/frame-types.d.ts.map +1 -0
- package/dist/sheet/frame-types.js +88 -0
- package/dist/sheet/frame-types.js.map +1 -0
- package/dist/sheet/index.d.ts +26 -0
- package/dist/sheet/index.d.ts.map +1 -0
- package/dist/sheet/index.js +12 -0
- package/dist/sheet/index.js.map +1 -0
- package/dist/sheet/paper-sizes.d.ts +36 -0
- package/dist/sheet/paper-sizes.d.ts.map +1 -0
- package/dist/sheet/paper-sizes.js +252 -0
- package/dist/sheet/paper-sizes.js.map +1 -0
- package/dist/sheet/scale-bar-renderer.d.ts +29 -0
- package/dist/sheet/scale-bar-renderer.d.ts.map +1 -0
- package/dist/sheet/scale-bar-renderer.js +287 -0
- package/dist/sheet/scale-bar-renderer.js.map +1 -0
- package/dist/sheet/scale-bar-types.d.ts +82 -0
- package/dist/sheet/scale-bar-types.d.ts.map +1 -0
- package/dist/sheet/scale-bar-types.js +66 -0
- package/dist/sheet/scale-bar-types.js.map +1 -0
- package/dist/sheet/sheet-types.d.ts +84 -0
- package/dist/sheet/sheet-types.d.ts.map +1 -0
- package/dist/sheet/sheet-types.js +77 -0
- package/dist/sheet/sheet-types.js.map +1 -0
- package/dist/sheet/title-block-renderer.d.ts +44 -0
- package/dist/sheet/title-block-renderer.d.ts.map +1 -0
- package/dist/sheet/title-block-renderer.js +335 -0
- package/dist/sheet/title-block-renderer.js.map +1 -0
- package/dist/sheet/title-block-types.d.ts +100 -0
- package/dist/sheet/title-block-types.d.ts.map +1 -0
- package/dist/sheet/title-block-types.js +174 -0
- package/dist/sheet/title-block-types.js.map +1 -0
- package/dist/styles.d.ts +77 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +347 -0
- package/dist/styles.js.map +1 -0
- package/dist/styling/index.d.ts +7 -0
- package/dist/styling/index.d.ts.map +1 -0
- package/dist/styling/index.js +10 -0
- package/dist/styling/index.js.map +1 -0
- package/dist/styling/layer-mapping.d.ts +57 -0
- package/dist/styling/layer-mapping.d.ts.map +1 -0
- package/dist/styling/layer-mapping.js +303 -0
- package/dist/styling/layer-mapping.js.map +1 -0
- package/dist/styling/line-styles.d.ts +49 -0
- package/dist/styling/line-styles.d.ts.map +1 -0
- package/dist/styling/line-styles.js +123 -0
- package/dist/styling/line-styles.js.map +1 -0
- package/dist/styling/line-weights.d.ts +61 -0
- package/dist/styling/line-weights.d.ts.map +1 -0
- package/dist/styling/line-weights.js +183 -0
- package/dist/styling/line-weights.js.map +1 -0
- package/dist/svg-exporter.d.ts +63 -0
- package/dist/svg-exporter.d.ts.map +1 -0
- package/dist/svg-exporter.js +278 -0
- package/dist/svg-exporter.js.map +1 -0
- package/dist/symbols/door-symbol.d.ts +82 -0
- package/dist/symbols/door-symbol.d.ts.map +1 -0
- package/dist/symbols/door-symbol.js +390 -0
- package/dist/symbols/door-symbol.js.map +1 -0
- package/dist/symbols/index.d.ts +8 -0
- package/dist/symbols/index.d.ts.map +1 -0
- package/dist/symbols/index.js +11 -0
- package/dist/symbols/index.js.map +1 -0
- package/dist/symbols/symbol-renderer.d.ts +29 -0
- package/dist/symbols/symbol-renderer.d.ts.map +1 -0
- package/dist/symbols/symbol-renderer.js +173 -0
- package/dist/symbols/symbol-renderer.js.map +1 -0
- package/dist/symbols/symbol-utils.d.ts +48 -0
- package/dist/symbols/symbol-utils.d.ts.map +1 -0
- package/dist/symbols/symbol-utils.js +129 -0
- package/dist/symbols/symbol-utils.js.map +1 -0
- package/dist/symbols/window-symbol.d.ts +57 -0
- package/dist/symbols/window-symbol.d.ts.map +1 -0
- package/dist/symbols/window-symbol.js +209 -0
- package/dist/symbols/window-symbol.js.map +1 -0
- package/dist/types.d.ts +443 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +31 -0
- package/dist/types.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { ifcTypeCriterion, propertyCriterion, andCriteria } from './rule-engine';
|
|
5
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
6
|
+
// HELPER FUNCTIONS
|
|
7
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
8
|
+
let ruleIdCounter = 0;
|
|
9
|
+
function generateRuleId() {
|
|
10
|
+
return `builtin-rule-${++ruleIdCounter}`;
|
|
11
|
+
}
|
|
12
|
+
function createRule(name, criteria, style, priority = 100, description) {
|
|
13
|
+
return {
|
|
14
|
+
id: generateRuleId(),
|
|
15
|
+
name,
|
|
16
|
+
description,
|
|
17
|
+
enabled: true,
|
|
18
|
+
priority,
|
|
19
|
+
criteria,
|
|
20
|
+
style,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
24
|
+
// ARCHITECTURAL STANDARDS PRESET
|
|
25
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
26
|
+
const ARCHITECTURAL_RULES = [
|
|
27
|
+
// Structural elements - heavy lines, concrete hatch
|
|
28
|
+
createRule('Walls - Heavy cut lines', ifcTypeCriterion(['IfcWall']), {
|
|
29
|
+
lineWeight: 'heavy',
|
|
30
|
+
strokeColor: '#000000',
|
|
31
|
+
hatchPattern: 'diagonal',
|
|
32
|
+
hatchSpacing: 3,
|
|
33
|
+
hatchAngle: 45,
|
|
34
|
+
}, 100, 'Standard wall representation'),
|
|
35
|
+
createRule('Columns - Heavy cut lines', ifcTypeCriterion(['IfcColumn']), {
|
|
36
|
+
lineWeight: 'heavy',
|
|
37
|
+
strokeColor: '#000000',
|
|
38
|
+
hatchPattern: 'cross-hatch',
|
|
39
|
+
hatchSpacing: 2,
|
|
40
|
+
}, 100),
|
|
41
|
+
createRule('Slabs - Medium lines', ifcTypeCriterion(['IfcSlab']), {
|
|
42
|
+
lineWeight: 'medium',
|
|
43
|
+
fillColor: '#E0E0E0',
|
|
44
|
+
hatchPattern: 'concrete',
|
|
45
|
+
}, 90),
|
|
46
|
+
// Openings - lighter representation
|
|
47
|
+
createRule('Windows - Light blue tint', ifcTypeCriterion(['IfcWindow']), {
|
|
48
|
+
lineWeight: 'light',
|
|
49
|
+
fillColor: '#E3F2FD',
|
|
50
|
+
strokeColor: '#1976D2',
|
|
51
|
+
hatchPattern: 'none',
|
|
52
|
+
}, 80),
|
|
53
|
+
createRule('Doors - No fill', ifcTypeCriterion(['IfcDoor']), {
|
|
54
|
+
lineWeight: 'medium',
|
|
55
|
+
fillColor: '#FFFFFF',
|
|
56
|
+
strokeColor: '#000000',
|
|
57
|
+
hatchPattern: 'none',
|
|
58
|
+
}, 80),
|
|
59
|
+
// Furniture - lightest
|
|
60
|
+
createRule('Furniture - Hairline', ifcTypeCriterion(['IfcFurnishingElement', 'IfcFurniture']), {
|
|
61
|
+
lineWeight: 'hairline',
|
|
62
|
+
strokeColor: '#666666',
|
|
63
|
+
fillColor: '#F5F5F5',
|
|
64
|
+
hatchPattern: 'none',
|
|
65
|
+
}, 60),
|
|
66
|
+
];
|
|
67
|
+
export const ARCHITECTURAL_PRESET = {
|
|
68
|
+
id: 'preset-architectural',
|
|
69
|
+
name: 'Architectural Standards',
|
|
70
|
+
description: 'ISO 128 compliant architectural drawing standards',
|
|
71
|
+
icon: 'PenTool',
|
|
72
|
+
rules: ARCHITECTURAL_RULES,
|
|
73
|
+
builtIn: true,
|
|
74
|
+
category: 'Standards',
|
|
75
|
+
};
|
|
76
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
77
|
+
// FIRE SAFETY PRESET
|
|
78
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
79
|
+
const FIRE_SAFETY_RULES = [
|
|
80
|
+
// Fire-rated walls (based on property)
|
|
81
|
+
createRule('Fire Rated 2hr+ - Red', andCriteria(ifcTypeCriterion(['IfcWall']), propertyCriterion('FireRating', 'greaterOrEqual', 120)), {
|
|
82
|
+
fillColor: '#FFCDD2',
|
|
83
|
+
strokeColor: '#C62828',
|
|
84
|
+
lineWeight: 'heavy',
|
|
85
|
+
hatchPattern: 'diagonal',
|
|
86
|
+
hatchColor: '#C62828',
|
|
87
|
+
}, 200, '2-hour or higher fire rating'),
|
|
88
|
+
createRule('Fire Rated 1hr - Orange', andCriteria(ifcTypeCriterion(['IfcWall']), propertyCriterion('FireRating', 'greaterOrEqual', 60)), {
|
|
89
|
+
fillColor: '#FFE0B2',
|
|
90
|
+
strokeColor: '#E65100',
|
|
91
|
+
lineWeight: 'heavy',
|
|
92
|
+
hatchPattern: 'diagonal',
|
|
93
|
+
hatchColor: '#E65100',
|
|
94
|
+
}, 190),
|
|
95
|
+
createRule('Fire Rated 30min - Yellow', andCriteria(ifcTypeCriterion(['IfcWall']), propertyCriterion('FireRating', 'greaterOrEqual', 30)), {
|
|
96
|
+
fillColor: '#FFF9C4',
|
|
97
|
+
strokeColor: '#F9A825',
|
|
98
|
+
lineWeight: 'medium',
|
|
99
|
+
hatchPattern: 'diagonal',
|
|
100
|
+
hatchColor: '#F9A825',
|
|
101
|
+
}, 180),
|
|
102
|
+
// Fire doors
|
|
103
|
+
createRule('Fire Doors - Red outline', andCriteria(ifcTypeCriterion(['IfcDoor']), propertyCriterion('FireRating', 'exists')), {
|
|
104
|
+
strokeColor: '#C62828',
|
|
105
|
+
lineWeight: 'heavy',
|
|
106
|
+
}, 200),
|
|
107
|
+
// Escape routes (spaces marked as circulation)
|
|
108
|
+
createRule('Escape Routes - Green', andCriteria(ifcTypeCriterion(['IfcSpace']), propertyCriterion('OccupancyType', 'contains', 'CIRCULATION')), {
|
|
109
|
+
fillColor: '#C8E6C9',
|
|
110
|
+
strokeColor: '#2E7D32',
|
|
111
|
+
lineWeight: 'light',
|
|
112
|
+
}, 150),
|
|
113
|
+
];
|
|
114
|
+
export const FIRE_SAFETY_PRESET = {
|
|
115
|
+
id: 'preset-fire-safety',
|
|
116
|
+
name: 'Fire Safety',
|
|
117
|
+
description: 'Highlight fire-rated elements and escape routes',
|
|
118
|
+
icon: 'Flame',
|
|
119
|
+
rules: FIRE_SAFETY_RULES,
|
|
120
|
+
builtIn: true,
|
|
121
|
+
category: 'Safety',
|
|
122
|
+
};
|
|
123
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
124
|
+
// STRUCTURAL PRESET
|
|
125
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
126
|
+
const STRUCTURAL_RULES = [
|
|
127
|
+
// Highlight all structural elements
|
|
128
|
+
createRule('Load-bearing Walls - Blue', andCriteria(ifcTypeCriterion(['IfcWall']), propertyCriterion('LoadBearing', 'equals', true)), {
|
|
129
|
+
fillColor: '#BBDEFB',
|
|
130
|
+
strokeColor: '#1565C0',
|
|
131
|
+
lineWeight: 'heavy',
|
|
132
|
+
hatchPattern: 'diagonal',
|
|
133
|
+
hatchColor: '#1565C0',
|
|
134
|
+
}, 200),
|
|
135
|
+
createRule('Columns - Blue heavy', ifcTypeCriterion(['IfcColumn']), {
|
|
136
|
+
fillColor: '#90CAF9',
|
|
137
|
+
strokeColor: '#0D47A1',
|
|
138
|
+
lineWeight: 'heavy',
|
|
139
|
+
hatchPattern: 'cross-hatch',
|
|
140
|
+
hatchColor: '#0D47A1',
|
|
141
|
+
}, 190),
|
|
142
|
+
createRule('Beams - Blue medium', ifcTypeCriterion(['IfcBeam']), {
|
|
143
|
+
fillColor: '#64B5F6',
|
|
144
|
+
strokeColor: '#1976D2',
|
|
145
|
+
lineWeight: 'medium',
|
|
146
|
+
hatchPattern: 'diagonal',
|
|
147
|
+
}, 180),
|
|
148
|
+
createRule('Slabs - Light blue', ifcTypeCriterion(['IfcSlab']), {
|
|
149
|
+
fillColor: '#E3F2FD',
|
|
150
|
+
strokeColor: '#42A5F5',
|
|
151
|
+
lineWeight: 'medium',
|
|
152
|
+
}, 170),
|
|
153
|
+
createRule('Footings - Dark blue', ifcTypeCriterion(['IfcFooting', 'IfcPile']), {
|
|
154
|
+
fillColor: '#1976D2',
|
|
155
|
+
strokeColor: '#0D47A1',
|
|
156
|
+
lineWeight: 'heavy',
|
|
157
|
+
hatchPattern: 'concrete',
|
|
158
|
+
}, 200),
|
|
159
|
+
// Fade non-structural
|
|
160
|
+
createRule('Non-structural - Faded', ifcTypeCriterion(['IfcFurnishingElement', 'IfcFurniture', 'IfcCovering']), {
|
|
161
|
+
opacity: 0.3,
|
|
162
|
+
lineWeight: 'hairline',
|
|
163
|
+
}, 50),
|
|
164
|
+
];
|
|
165
|
+
export const STRUCTURAL_PRESET = {
|
|
166
|
+
id: 'preset-structural',
|
|
167
|
+
name: 'Structural Highlight',
|
|
168
|
+
description: 'Emphasize structural elements, fade non-structural',
|
|
169
|
+
icon: 'Building2',
|
|
170
|
+
rules: STRUCTURAL_RULES,
|
|
171
|
+
builtIn: true,
|
|
172
|
+
category: 'Discipline',
|
|
173
|
+
};
|
|
174
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
175
|
+
// MEP (MECHANICAL, ELECTRICAL, PLUMBING) PRESET
|
|
176
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
177
|
+
const MEP_RULES = [
|
|
178
|
+
// HVAC - Blue
|
|
179
|
+
createRule('HVAC Ducts - Blue', ifcTypeCriterion(['IfcDuctSegment', 'IfcDuctFitting']), {
|
|
180
|
+
fillColor: '#E3F2FD',
|
|
181
|
+
strokeColor: '#1976D2',
|
|
182
|
+
lineWeight: 'medium',
|
|
183
|
+
}, 150),
|
|
184
|
+
createRule('Air Terminals - Blue', ifcTypeCriterion(['IfcAirTerminal', 'IfcAirTerminalBox']), {
|
|
185
|
+
fillColor: '#BBDEFB',
|
|
186
|
+
strokeColor: '#1565C0',
|
|
187
|
+
lineWeight: 'light',
|
|
188
|
+
}, 140),
|
|
189
|
+
// Plumbing - Green
|
|
190
|
+
createRule('Pipes - Green', ifcTypeCriterion(['IfcPipeSegment', 'IfcPipeFitting']), {
|
|
191
|
+
fillColor: '#E8F5E9',
|
|
192
|
+
strokeColor: '#388E3C',
|
|
193
|
+
lineWeight: 'medium',
|
|
194
|
+
}, 150),
|
|
195
|
+
createRule('Plumbing Fixtures - Green', ifcTypeCriterion(['IfcSanitaryTerminal', 'IfcWasteTerminal']), {
|
|
196
|
+
fillColor: '#C8E6C9',
|
|
197
|
+
strokeColor: '#2E7D32',
|
|
198
|
+
lineWeight: 'light',
|
|
199
|
+
}, 140),
|
|
200
|
+
// Electrical - Yellow/Orange
|
|
201
|
+
createRule('Cable Trays - Orange', ifcTypeCriterion(['IfcCableCarrierSegment', 'IfcCableCarrierFitting']), {
|
|
202
|
+
fillColor: '#FFF3E0',
|
|
203
|
+
strokeColor: '#E65100',
|
|
204
|
+
lineWeight: 'light',
|
|
205
|
+
}, 150),
|
|
206
|
+
createRule('Electrical Equipment - Yellow', ifcTypeCriterion(['IfcElectricDistributionBoard', 'IfcSwitchingDevice', 'IfcOutlet']), {
|
|
207
|
+
fillColor: '#FFFDE7',
|
|
208
|
+
strokeColor: '#F9A825',
|
|
209
|
+
lineWeight: 'light',
|
|
210
|
+
}, 140),
|
|
211
|
+
// Fade architectural
|
|
212
|
+
createRule('Architectural - Faded', ifcTypeCriterion(['IfcWall', 'IfcSlab', 'IfcDoor', 'IfcWindow']), {
|
|
213
|
+
opacity: 0.4,
|
|
214
|
+
strokeColor: '#9E9E9E',
|
|
215
|
+
}, 50),
|
|
216
|
+
];
|
|
217
|
+
export const MEP_PRESET = {
|
|
218
|
+
id: 'preset-mep',
|
|
219
|
+
name: 'MEP Highlight',
|
|
220
|
+
description: 'Color-code mechanical, electrical, and plumbing systems',
|
|
221
|
+
icon: 'Wrench',
|
|
222
|
+
rules: MEP_RULES,
|
|
223
|
+
builtIn: true,
|
|
224
|
+
category: 'Discipline',
|
|
225
|
+
};
|
|
226
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
227
|
+
// IFC MATERIALS PRESET (default - uses actual colors from IFC file)
|
|
228
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
229
|
+
export const VIEW_3D_PRESET = {
|
|
230
|
+
id: 'preset-3d-colors',
|
|
231
|
+
name: 'Default',
|
|
232
|
+
description: 'By material color',
|
|
233
|
+
icon: 'Palette',
|
|
234
|
+
rules: [], // No rules needed - colors come from mesh data directly
|
|
235
|
+
builtIn: true,
|
|
236
|
+
category: 'Standards',
|
|
237
|
+
};
|
|
238
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
239
|
+
// MONOCHROME PRESET
|
|
240
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
241
|
+
const MONOCHROME_RULES = [
|
|
242
|
+
createRule('All elements - Black and white', { type: 'all' }, {
|
|
243
|
+
strokeColor: '#000000',
|
|
244
|
+
fillColor: '#FFFFFF',
|
|
245
|
+
hatchColor: '#000000',
|
|
246
|
+
}, 1),
|
|
247
|
+
createRule('Cut elements - Gray fill', ifcTypeCriterion(['IfcWall', 'IfcColumn', 'IfcSlab', 'IfcBeam']), {
|
|
248
|
+
fillColor: '#E0E0E0',
|
|
249
|
+
}, 10),
|
|
250
|
+
];
|
|
251
|
+
export const MONOCHROME_PRESET = {
|
|
252
|
+
id: 'preset-monochrome',
|
|
253
|
+
name: 'Monochrome',
|
|
254
|
+
description: 'Black and white print-ready output',
|
|
255
|
+
icon: 'Printer',
|
|
256
|
+
rules: MONOCHROME_RULES,
|
|
257
|
+
builtIn: true,
|
|
258
|
+
category: 'Output',
|
|
259
|
+
};
|
|
260
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
261
|
+
// ALL BUILT-IN PRESETS
|
|
262
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
263
|
+
export const BUILT_IN_PRESETS = [
|
|
264
|
+
VIEW_3D_PRESET,
|
|
265
|
+
ARCHITECTURAL_PRESET,
|
|
266
|
+
FIRE_SAFETY_PRESET,
|
|
267
|
+
STRUCTURAL_PRESET,
|
|
268
|
+
MEP_PRESET,
|
|
269
|
+
MONOCHROME_PRESET,
|
|
270
|
+
];
|
|
271
|
+
/**
|
|
272
|
+
* Get a built-in preset by ID
|
|
273
|
+
*/
|
|
274
|
+
export function getBuiltInPreset(id) {
|
|
275
|
+
return BUILT_IN_PRESETS.find((p) => p.id === id);
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Get all built-in presets for a category
|
|
279
|
+
*/
|
|
280
|
+
export function getPresetsByCategory(category) {
|
|
281
|
+
return BUILT_IN_PRESETS.filter((p) => p.category === category);
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/graphic-overrides/presets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graphic Overrides Rule Engine
|
|
3
|
+
*
|
|
4
|
+
* Evaluates override rules against element data and resolves
|
|
5
|
+
* the final graphic style to apply.
|
|
6
|
+
*/
|
|
7
|
+
import type { GraphicOverrideRule, OverrideCriteria, OverrideCriterion, CriteriaOperator, ElementData, GraphicStyle, OverrideResult } from './types';
|
|
8
|
+
export declare class GraphicOverrideEngine {
|
|
9
|
+
private rules;
|
|
10
|
+
constructor(rules?: GraphicOverrideRule[]);
|
|
11
|
+
/**
|
|
12
|
+
* Set the active rules
|
|
13
|
+
*/
|
|
14
|
+
setRules(rules: GraphicOverrideRule[]): void;
|
|
15
|
+
/**
|
|
16
|
+
* Add a rule
|
|
17
|
+
*/
|
|
18
|
+
addRule(rule: GraphicOverrideRule): void;
|
|
19
|
+
/**
|
|
20
|
+
* Remove a rule by ID
|
|
21
|
+
*/
|
|
22
|
+
removeRule(ruleId: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get all active rules
|
|
25
|
+
*/
|
|
26
|
+
getRules(): GraphicOverrideRule[];
|
|
27
|
+
/**
|
|
28
|
+
* Apply overrides to an element and get resolved style
|
|
29
|
+
*/
|
|
30
|
+
applyOverrides(element: ElementData, baseStyle?: Partial<GraphicStyle>): OverrideResult;
|
|
31
|
+
/**
|
|
32
|
+
* Apply overrides to multiple elements
|
|
33
|
+
*/
|
|
34
|
+
applyOverridesToMany(elements: ElementData[], baseStyles?: Map<number, Partial<GraphicStyle>>): Map<number, OverrideResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Check which rules match an element (for debugging/preview)
|
|
37
|
+
*/
|
|
38
|
+
getMatchingRules(element: ElementData): GraphicOverrideRule[];
|
|
39
|
+
/**
|
|
40
|
+
* Validate a rule's criteria syntax
|
|
41
|
+
*/
|
|
42
|
+
static validateCriteria(criteria: OverrideCriteria | OverrideCriterion): string[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a default override engine
|
|
46
|
+
*/
|
|
47
|
+
export declare function createOverrideEngine(rules?: GraphicOverrideRule[]): GraphicOverrideEngine;
|
|
48
|
+
/**
|
|
49
|
+
* Helper to create a simple IFC type criterion
|
|
50
|
+
*/
|
|
51
|
+
export declare function ifcTypeCriterion(types: string[], includeSubtypes?: boolean): OverrideCriterion;
|
|
52
|
+
/**
|
|
53
|
+
* Helper to create a property criterion
|
|
54
|
+
*/
|
|
55
|
+
export declare function propertyCriterion(propertyName: string, operator: CriteriaOperator, value?: unknown, propertySet?: string): OverrideCriterion;
|
|
56
|
+
/**
|
|
57
|
+
* Helper to combine criteria with AND
|
|
58
|
+
*/
|
|
59
|
+
export declare function andCriteria(...conditions: (OverrideCriteria | OverrideCriterion)[]): OverrideCriteria;
|
|
60
|
+
/**
|
|
61
|
+
* Helper to combine criteria with OR
|
|
62
|
+
*/
|
|
63
|
+
export declare function orCriteria(...conditions: (OverrideCriteria | OverrideCriterion)[]): OverrideCriteria;
|
|
64
|
+
//# sourceMappingURL=rule-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-engine.d.ts","sourceRoot":"","sources":["../../src/graphic-overrides/rule-engine.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,YAAY,EAEZ,cAAc,EAIf,MAAM,SAAS,CAAC;AAyWjB,qBAAa,qBAAqB;IAChC,OAAO,CAAC,KAAK,CAA6B;gBAE9B,KAAK,CAAC,EAAE,mBAAmB,EAAE;IAMzC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAK5C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAKxC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,QAAQ,IAAI,mBAAmB,EAAE;IAIjC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,cAAc;IAyBvF;;OAEG;IACH,oBAAoB,CAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,GAC9C,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAW9B;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,mBAAmB,EAAE;IAM7D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,MAAM,EAAE;CA0BlF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,GAAG,qBAAqB,CAEzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,UAAO,GAAG,iBAAiB,CAM3F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,CAAC,EAAE,OAAO,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,iBAAiB,CAQnB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,UAAU,EAAE,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,EAAE,GACtD,gBAAgB,CAElB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,UAAU,EAAE,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,EAAE,GACtD,gBAAgB,CAElB"}
|