@archilogic/floor-plan-sdk 5.0.2 → 5.1.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/dist/fpe.d.ts CHANGED
@@ -198,6 +198,10 @@ declare interface CurveBase {
198
198
 
199
199
  declare type CurveType = ClosedCurveType | OpenCurveType;
200
200
 
201
+ declare type CustomAttributeResourceType = 'building' | 'element' | 'floor' | 'layout' | 'product' | 'space';
202
+
203
+ declare type CustomAttributeValueType = 'Text' | 'Number' | 'Boolean';
204
+
201
205
  declare interface CustomStairsParameters {
202
206
  stairsType: CustomStairsType;
203
207
  height: number;
@@ -507,12 +511,8 @@ declare type FloorPlanTheme = {
507
511
  grayscale: boolean;
508
512
  };
509
513
  roomStamp?: {
510
- /** @deprecated show the usage information in room stamps */
511
- showUsage?: boolean;
512
- /** @deprecated show the area information in room stamps */
513
- showArea?: boolean;
514
514
  /** show the area information in room stamps */
515
- roomStampDisplay?: ('usage' | 'area' | 'customId' | 'name' | 'id')[];
515
+ roomStampDisplay?: ('usage' | 'area' | 'customId' | 'name' | 'id' | ['customAttribute', string])[];
516
516
  /** text color for room stamps */
517
517
  text?: Rgb;
518
518
  /** whether the room stamp text should have an outline to assist with contrast issues */
@@ -877,6 +877,7 @@ declare class GroupRelation extends SpaceGraphNodeBase {
877
877
  insertElements(elements: LayoutElement[]): void;
878
878
  removeElements(elements: LayoutElement[]): void;
879
879
  copyForClone(product: GroupRelation): void;
880
+ toJSON(): GroupRelationJson;
880
881
  }
881
882
 
882
883
  declare interface GroupRelationJson extends SpaceGraphNodeBaseJson {
@@ -1083,6 +1084,7 @@ declare class LayoutAnnotationBase extends LayoutNodeBase {
1083
1084
  copyForClone(annotation: LayoutAnnotation): void;
1084
1085
  setTransform(position: Vector3, rotation: number): void;
1085
1086
  setParameters(parameters: RecursivePartial<LayoutAnnotationParameters>): void;
1087
+ toJSON(): LayoutAnnotationJson;
1086
1088
  }
1087
1089
 
1088
1090
  declare interface LayoutAnnotationBaseJson extends LayoutNodeBaseJson {
@@ -1160,6 +1162,7 @@ declare class LayoutBoundary {
1160
1162
  vertices: SpatialGraphVertex[];
1161
1163
  edges: SpatialGraphEdge[];
1162
1164
  geometryProfile: Vector2_2[];
1165
+ toJSON(): LayoutBoundaryJson;
1163
1166
  }
1164
1167
 
1165
1168
  declare type LayoutBoundaryElement = LayoutBoundarySlab | LayoutBoundaryWall;
@@ -1431,6 +1434,7 @@ declare class LayoutElementBase extends LayoutNodeBase {
1431
1434
  copyForClone(element: LayoutElement): void;
1432
1435
  setParameters(parameters: RecursivePartial<LayoutElementParameters>): void;
1433
1436
  getSpaces(): LayoutSpace[];
1437
+ toJSON(): LayoutElementJson;
1434
1438
  }
1435
1439
 
1436
1440
  declare interface LayoutElementBaseJson extends LayoutNodeBaseJson {
@@ -1560,13 +1564,13 @@ declare const LayoutKitchenTypeValue = "element:kitchen";
1560
1564
 
1561
1565
  declare type LayoutNode = SpatialGraphNode | LayoutSpace | LayoutElement | LayoutAnnotation | LayoutView;
1562
1566
 
1563
- declare class LayoutNodeBase extends SpaceGraphNodeBase {
1567
+ declare class LayoutNodeBase extends SpaceGraphNodeWithCustomAttributesBase {
1564
1568
  type: LayoutNodeType;
1565
1569
  layout: SpaceGraphLayout;
1566
1570
  constructor(id: string, type: LayoutNodeType);
1567
1571
  }
1568
1572
 
1569
- declare interface LayoutNodeBaseJson extends SpaceGraphNodeBaseJson {
1573
+ declare interface LayoutNodeBaseJson extends SpaceGraphNodeWithCustomAttributesBaseJson {
1570
1574
  type: LayoutNodeType;
1571
1575
  }
1572
1576
 
@@ -1763,6 +1767,7 @@ declare class LayoutSpace extends LayoutNodeBase {
1763
1767
  getBoundingBox(): TransformBoundingBox3d;
1764
1768
  attachSlab(slab: LayoutBoundarySlab): void;
1765
1769
  detachSlab(slab: LayoutBoundarySlab): void;
1770
+ toJSON(): LayoutSpaceJson;
1766
1771
  }
1767
1772
 
1768
1773
  declare interface LayoutSpaceAttributes {
@@ -1843,6 +1848,7 @@ declare class LayoutSpatialGraph {
1843
1848
  createVertex(id: string, x: number, y: number): SpatialGraphVertex;
1844
1849
  createEdge(id: string, vertex1: SpatialGraphVertex, vertex2: SpatialGraphVertex, splitSpace?: boolean): SpatialGraphEdge;
1845
1850
  createEdgeByVertexIds(id: string, vertexId1: string, vertexId2: string, splitSpace?: boolean): SpatialGraphEdge;
1851
+ toJSON(): LayoutSpatialGraphJson;
1846
1852
  }
1847
1853
 
1848
1854
  declare interface LayoutSpatialGraphJson {
@@ -1957,6 +1963,7 @@ declare class LayoutViewBase extends LayoutNodeBase {
1957
1963
  parameters: LayoutViewParameters;
1958
1964
  copyForClone(view: LayoutView): void;
1959
1965
  setParameters(parameters: RecursivePartial<LayoutViewParameters>): void;
1966
+ toJSON(): LayoutViewJson;
1960
1967
  }
1961
1968
 
1962
1969
  declare interface LayoutViewBaseJson extends LayoutNodeBaseJson {
@@ -2390,6 +2397,7 @@ declare interface ShapeStyle {
2390
2397
  fill?: string | number | number[] | false;
2391
2398
  fillOpacity?: number;
2392
2399
  dash?: boolean;
2400
+ alignment?: 0 | 0.5 | 1;
2393
2401
  }
2394
2402
 
2395
2403
  declare class SpaceGraph {
@@ -2399,6 +2407,11 @@ declare class SpaceGraph {
2399
2407
  productsByType: NodesByType<{
2400
2408
  readonly 'product:static': typeof SpaceGraphProduct;
2401
2409
  }>;
2410
+ customAttributes: SpaceGraphCustomAttribute[];
2411
+ customAttributesById: Record<string, SpaceGraphCustomAttribute>;
2412
+ customAttributesByType: NodesByType<{
2413
+ readonly 'customAttribute:definition': typeof SpaceGraphCustomAttribute;
2414
+ }>;
2402
2415
  geometries: SpaceGraphGeometryJson[];
2403
2416
  geometriesById: Record<string, SpaceGraphGeometryJson>;
2404
2417
  geometriesByType: NodesByType<{
@@ -2498,11 +2511,14 @@ declare class SpaceGraph {
2498
2511
  insertRelation(relation: SpaceGraphRelation): void;
2499
2512
  removeRelation(relation: SpaceGraphRelation): void;
2500
2513
  createRelation(type: SpaceGraphRelationType, id: string): SpaceGraphRelation;
2514
+ insertCustomAttribute(customAttribute: SpaceGraphCustomAttribute): void;
2515
+ removeCustomAttribute(customAttribute: SpaceGraphCustomAttribute): void;
2501
2516
  getId(): string;
2502
2517
  emit<EventType extends keyof SpaceGraphEventMap>(event: EventType, ...args: SpaceGraphEventMap[EventType]): void;
2503
2518
  on<EventType extends keyof SpaceGraphEventMap>(event: EventType, handler: (...args: SpaceGraphEventMap[EventType]) => void, context?: any): void;
2504
2519
  once<EventType extends keyof SpaceGraphEventMap>(event: EventType, handler: (...args: SpaceGraphEventMap[EventType]) => void, context?: any): void;
2505
2520
  off<EventType extends keyof SpaceGraphEventMap>(event: EventType, handler?: (...args: SpaceGraphEventMap[EventType]) => void): void;
2521
+ toJSON(): SpaceGraphJson;
2506
2522
  }
2507
2523
 
2508
2524
  declare class SpaceGraphBasicMaterial extends SpaceGraphNodeBase {
@@ -2513,6 +2529,7 @@ declare class SpaceGraphBasicMaterial extends SpaceGraphNodeBase {
2513
2529
  opacity: number;
2514
2530
  constructor(id: string);
2515
2531
  copyForClone(material: SpaceGraphBasicMaterial): void;
2532
+ toJSON(): SpaceGraphMaterialResourceJson;
2516
2533
  }
2517
2534
 
2518
2535
  declare interface SpaceGraphBasicMaterialJson extends SpaceGraphMaterialBaseJson {
@@ -2536,6 +2553,7 @@ declare class SpaceGraphBuilding extends SpaceGraphSpatialStructureBase {
2536
2553
  insertFloor(floor: SpaceGraphFloor): void;
2537
2554
  removeFloor(floor: SpaceGraphFloor): void;
2538
2555
  createFloor(id: string): SpaceGraphFloor;
2556
+ toJSON(): SpaceGraphBuildingJson;
2539
2557
  }
2540
2558
 
2541
2559
  declare interface SpaceGraphBuildingJson extends SpaceGraphSpatialStructureBaseJson {
@@ -2553,6 +2571,7 @@ declare class SpaceGraphColorMaterial extends SpaceGraphNodeBase {
2553
2571
  color: Rgb;
2554
2572
  opacity: number;
2555
2573
  constructor(id: string, color?: Rgb, opacity?: number);
2574
+ toJSON(): SpaceGraphMaterialResourceJson;
2556
2575
  }
2557
2576
 
2558
2577
  declare interface SpaceGraphColorMaterialJson extends SpaceGraphMaterialBaseJson {
@@ -2564,11 +2583,53 @@ declare type SpaceGraphColorMaterialType = typeof SpaceGraphColorMaterialTypeVal
2564
2583
 
2565
2584
  declare const SpaceGraphColorMaterialTypeValue = "material:color";
2566
2585
 
2586
+ declare class SpaceGraphCustomAttribute extends SpaceGraphNodeBase {
2587
+ type: SpaceGraphCustomAttributeType;
2588
+ attributes: SpaceGraphCustomAttributeAttributes;
2589
+ constructor(id: string, attributesJson?: SpaceGraphCustomAttributeAttributesJson);
2590
+ setAttributes(attributesJson: SpaceGraphCustomAttributeAttributesJson): void;
2591
+ copyForClone(customAttribute: SpaceGraphCustomAttribute): void;
2592
+ toJSON(): SpaceGraphCustomAttributeJson;
2593
+ }
2594
+
2595
+ declare type SpaceGraphCustomAttributeAttributes = {
2596
+ resourceType: CustomAttributeResourceType;
2597
+ valueType: CustomAttributeValueType;
2598
+ updatedAt?: string;
2599
+ description?: string;
2600
+ };
2601
+
2602
+ declare type SpaceGraphCustomAttributeAttributesJson = {
2603
+ resourceType: CustomAttributeResourceType;
2604
+ valueType: CustomAttributeValueType;
2605
+ updatedAt?: string;
2606
+ /** @minLength 3 @maxLength 200 @type string */
2607
+ description?: string;
2608
+ };
2609
+
2610
+ declare interface SpaceGraphCustomAttributeJson extends SpaceGraphNodeBaseJson {
2611
+ /** @type string @minLength 3 @maxLength 50 @pattern ^(?![_-])[A-Za-z0-9_-]*$ */
2612
+ id: string;
2613
+ /** @minLength 3 @maxLength 30 @type string */
2614
+ name: string;
2615
+ type: SpaceGraphCustomAttributeType;
2616
+ attributes: SpaceGraphCustomAttributeAttributesJson;
2617
+ }
2618
+
2619
+ declare type SpaceGraphCustomAttributeType = typeof SpaceGraphCustomAttributeTypeValue;
2620
+
2621
+ declare const SpaceGraphCustomAttributeTypeValue = "customAttribute:definition";
2622
+
2623
+ declare type SpaceGraphCustomAttributeValue = Record<string, string>;
2624
+
2625
+ declare type SpaceGraphCustomAttributeValueJson = Record<string, string | null>;
2626
+
2567
2627
  declare class SpaceGraphEmbeddedMaterial extends SpaceGraphNodeBase {
2568
2628
  type: SpaceGraphEmbeddedMaterialType;
2569
2629
  reference: string;
2570
2630
  format: SpaceGraphEmbeddedMaterialFormat;
2571
2631
  constructor(id: string, reference: string, format: SpaceGraphEmbeddedMaterialFormat);
2632
+ toJSON(): SpaceGraphMaterialResourceJson;
2572
2633
  }
2573
2634
 
2574
2635
  declare type SpaceGraphEmbeddedMaterialFormat = 'data3d';
@@ -2586,8 +2647,11 @@ declare interface SpaceGraphEventMap {
2586
2647
  'material-delete': [SpaceGraphMaterial];
2587
2648
  'relation-create': [SpaceGraphRelation];
2588
2649
  'relation-delete': [SpaceGraphRelation];
2650
+ 'custom-attribute-create': [SpaceGraphCustomAttribute];
2651
+ 'custom-attribute-delete': [SpaceGraphCustomAttribute];
2589
2652
  'node-id-change': [SpaceGraphNodeBase, string];
2590
2653
  'node-property-change': [SpaceGraphNodeBase, string];
2654
+ 'node-custom-attributes-change': [SpaceGraphNodeBase];
2591
2655
  'vertex-create': [SpatialGraphVertex];
2592
2656
  'vertex-delete': [SpatialGraphVertex];
2593
2657
  'vertex-add-edge': [SpatialGraphVertex, SpatialGraphEdge];
@@ -2606,6 +2670,7 @@ declare interface SpaceGraphEventMap {
2606
2670
  'element-delete': [LayoutElement];
2607
2671
  'element-parameters-change': [LayoutElementBase];
2608
2672
  'element-transform-change': [LayoutTransformElementBase];
2673
+ 'element-edges-change': [LayoutEdgeElementBase];
2609
2674
  'annotation-create': [LayoutAnnotation];
2610
2675
  'annotation-delete': [LayoutAnnotation];
2611
2676
  'annotation-transform-change': [LayoutAnnotationBase];
@@ -2628,6 +2693,7 @@ declare class SpaceGraphFloor extends SpaceGraphSpatialStructureBase {
2628
2693
  insertLayout(layout: SpaceGraphLayout): void;
2629
2694
  removeLayout(layout: SpaceGraphLayout): void;
2630
2695
  createLayout(id: string): SpaceGraphLayout;
2696
+ toJSON(): SpaceGraphFloorJson;
2631
2697
  }
2632
2698
 
2633
2699
  declare interface SpaceGraphFloorJson extends SpaceGraphSpatialStructureBaseJson {
@@ -2731,6 +2797,7 @@ declare class SpaceGraphLayout extends SpaceGraphSpatialStructureBase {
2731
2797
  getSpaceId(prefix?: string): string;
2732
2798
  getElementId(element: LayoutElement, prefix?: string): string;
2733
2799
  getBoundingBox(): TransformBoundingBox3d;
2800
+ toJSON(): SpaceGraphLayoutJson;
2734
2801
  }
2735
2802
 
2736
2803
  declare interface SpaceGraphLayoutJson extends SpaceGraphSpatialStructureBaseJson {
@@ -2757,7 +2824,7 @@ declare type SpaceGraphMaterialJson = Rgb | RgbA | string | SpaceGraphMaterialRe
2757
2824
 
2758
2825
  declare type SpaceGraphMaterialResourceJson = SpaceGraphColorMaterialJson | SpaceGraphStandardMaterialJson | SpaceGraphBasicMaterialJson;
2759
2826
 
2760
- declare type SpaceGraphNode = SpaceGraphProduct | SpaceGraphGeometry | SpaceGraphMaterial | SpaceGraphRelation | SpaceGraphBuilding | SpaceGraphFloor | LayoutNode | SpaceGraphLayout | LayoutAnnotation;
2827
+ declare type SpaceGraphNode = SpaceGraphProduct | SpaceGraphGeometry | SpaceGraphMaterial | SpaceGraphRelation | SpaceGraphCustomAttribute | SpaceGraphBuilding | SpaceGraphFloor | LayoutNode | SpaceGraphLayout | LayoutAnnotation;
2761
2828
 
2762
2829
  declare class SpaceGraphNodeBase extends SpaceGraphTypedValue {
2763
2830
  id: string;
@@ -2768,6 +2835,7 @@ declare class SpaceGraphNodeBase extends SpaceGraphTypedValue {
2768
2835
  setName(name: string): void;
2769
2836
  setCustomId(customId: string): void;
2770
2837
  emit<EventType extends keyof SpaceGraphEventMap>(event: EventType, ...args: SpaceGraphEventMap[EventType]): void;
2838
+ toJSON(): SpaceGraphNodeBaseJson;
2771
2839
  }
2772
2840
 
2773
2841
  declare interface SpaceGraphNodeBaseJson extends SpaceGraphTypedValueJson {
@@ -2777,13 +2845,28 @@ declare interface SpaceGraphNodeBaseJson extends SpaceGraphTypedValueJson {
2777
2845
  customId?: string;
2778
2846
  }
2779
2847
 
2780
- declare class SpaceGraphProduct extends SpaceGraphNodeBase {
2848
+ declare type SpaceGraphNodeWithCustomAttributes = LayoutNode | SpaceGraphSpatialStructure | SpaceGraphProduct;
2849
+
2850
+ declare class SpaceGraphNodeWithCustomAttributesBase extends SpaceGraphNodeBase {
2851
+ customAttributes: SpaceGraphCustomAttributeValue;
2852
+ constructor(id: string, type: string);
2853
+ setCustomAttributes(customAttributes?: SpaceGraphCustomAttributeValueJson | null, customAttributesById?: Record<string, SpaceGraphCustomAttribute>): void;
2854
+ toJSON(): SpaceGraphNodeWithCustomAttributesBaseJson;
2855
+ copyForClone(node: SpaceGraphNodeWithCustomAttributes): void;
2856
+ }
2857
+
2858
+ declare interface SpaceGraphNodeWithCustomAttributesBaseJson extends SpaceGraphNodeBaseJson {
2859
+ customAttributes?: SpaceGraphCustomAttributeValueJson | null;
2860
+ }
2861
+
2862
+ declare class SpaceGraphProduct extends SpaceGraphNodeWithCustomAttributesBase {
2781
2863
  type: SpaceGraphProductType;
2782
2864
  attributes: SpaceGraphProductAttributes;
2783
2865
  geometries: GeometryOperationJson[];
2784
2866
  constructor(id: string);
2785
2867
  copyForClone(product: SpaceGraphProduct): void;
2786
2868
  setAttributes(attributesJson: SpaceGraphProductAttributesJson): void;
2869
+ toJSON(): SpaceGraphProductJson;
2787
2870
  }
2788
2871
 
2789
2872
  declare type SpaceGraphProductAttributes = {
@@ -2806,7 +2889,7 @@ declare type SpaceGraphProductAttributesJson = {
2806
2889
  updatedAt?: string;
2807
2890
  };
2808
2891
 
2809
- declare interface SpaceGraphProductJson extends SpaceGraphNodeBaseJson {
2892
+ declare interface SpaceGraphProductJson extends SpaceGraphNodeWithCustomAttributesBaseJson {
2810
2893
  type: SpaceGraphProductType;
2811
2894
  attributes?: SpaceGraphProductAttributesJson;
2812
2895
  geometries: GeometryOperationJson[];
@@ -2827,16 +2910,17 @@ declare interface SpaceGraphSharedResourcesJson {
2827
2910
  geometries: SpaceGraphGeometryJson[];
2828
2911
  materials: SpaceGraphMaterialResourceJson[];
2829
2912
  relations: SpaceGraphRelationJson[];
2913
+ customAttributes?: SpaceGraphCustomAttributeJson[];
2830
2914
  }
2831
2915
 
2832
2916
  declare type SpaceGraphSpatialStructure = SpaceGraphBuilding | SpaceGraphFloor | SpaceGraphLayout;
2833
2917
 
2834
- declare class SpaceGraphSpatialStructureBase extends SpaceGraphNodeBase {
2918
+ declare class SpaceGraphSpatialStructureBase extends SpaceGraphNodeWithCustomAttributesBase {
2835
2919
  type: SpaceGraphSpatialStructureType;
2836
2920
  constructor(id: string, type: SpaceGraphSpatialStructureType);
2837
2921
  }
2838
2922
 
2839
- declare interface SpaceGraphSpatialStructureBaseJson extends SpaceGraphNodeBaseJson {
2923
+ declare interface SpaceGraphSpatialStructureBaseJson extends SpaceGraphNodeWithCustomAttributesBaseJson {
2840
2924
  type: SpaceGraphSpatialStructureType;
2841
2925
  }
2842
2926
 
@@ -2848,6 +2932,7 @@ declare class SpaceGraphStandardMaterial extends SpaceGraphNodeBase {
2848
2932
  type: SpaceGraphStandardMaterialType;
2849
2933
  reference: string;
2850
2934
  constructor(id: string, reference: string);
2935
+ toJSON(): SpaceGraphMaterialResourceJson;
2851
2936
  }
2852
2937
 
2853
2938
  declare interface SpaceGraphStandardMaterialJson extends SpaceGraphMaterialBaseJson {
@@ -2900,6 +2985,7 @@ declare class SpatialGraphEdge extends SpatialGraphNodeBase {
2900
2985
  split(u: number, options?: EdgeSplitOptions, updateSpaceBoundaries?: boolean): EdgeSplitReturnValue;
2901
2986
  canMerge(edge: SpatialGraphEdge): boolean;
2902
2987
  merge(edge: SpatialGraphEdge, updateSpaceBoundaries?: boolean): void;
2988
+ toJSON(): SpatialGraphEdgeJson;
2903
2989
  }
2904
2990
 
2905
2991
  declare interface SpatialGraphEdgeJson extends SpatialGraphNodeBaseJson {
@@ -2930,6 +3016,7 @@ declare class SpatialGraphVertex extends SpatialGraphNodeBase {
2930
3016
  addEdge(edge: SpatialGraphEdge): void;
2931
3017
  removeEdge(edge: SpatialGraphEdge): void;
2932
3018
  setPosition(x: number, y: number): void;
3019
+ toJSON(): SpatialGraphVertexJson;
2933
3020
  }
2934
3021
 
2935
3022
  declare interface SpatialGraphVertexJson extends SpatialGraphNodeBaseJson {