@itwin/rpcinterface-full-stack-tests 5.14.3 → 5.15.0-dev.10

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.
@@ -67462,10 +67462,8 @@ class HorizontalCRS {
67462
67462
  }
67463
67463
  }
67464
67464
  /** Vertical Coordinate reference System implementation.
67465
- * The VerticalCRS contains currently a single identifier property of string type. Although
67466
- * we currently only support five distinct key values "GEOID", "ELLIPSOID", "NAVD88", "NGVD29" and "LOCAL_ELLIPSOID"
67467
- * we expect to support a broader set in the future including, eventually, user defined vertical CRS
67468
- * which will require additional parameters to be added.
67465
+ * A VerticalCRS can identify a predefined system by dictionary name or EPSG code while retaining
67466
+ * one of the five legacy keys for backward compatibility.
67469
67467
  * @public
67470
67468
  */
67471
67469
  class VerticalCRS {
@@ -67480,10 +67478,19 @@ class VerticalCRS {
67480
67478
  * be used for datums that are not considered coincident vertically with WGS84. Use of this vertical datum is strongly discouraged.
67481
67479
  */
67482
67480
  id;
67481
+ /** Dictionary CRS name, e.g. "EGM96 height". Takes precedence over [[epsg]] and [[id]] when set.
67482
+ * @beta */
67483
+ crsName;
67484
+ /** EPSG code identifying the vertical CRS. Takes precedence over [[id]] when [[crsName]] is not set.
67485
+ * @beta */
67486
+ epsg;
67483
67487
  constructor(data) {
67484
67488
  this.id = "GEOID";
67485
- if (data)
67489
+ if (data) {
67486
67490
  this.id = data.id;
67491
+ this.crsName = data.crsName;
67492
+ this.epsg = data.epsg;
67493
+ }
67487
67494
  }
67488
67495
  /** Creates a Vertical CRS from JSON representation.
67489
67496
  * @public */
@@ -67493,12 +67500,17 @@ class VerticalCRS {
67493
67500
  /** Creates a JSON from the Vertical CRS definition
67494
67501
  * @public */
67495
67502
  toJSON() {
67496
- return { id: this.id };
67503
+ const data = { id: this.id };
67504
+ if (this.crsName !== undefined)
67505
+ data.crsName = this.crsName;
67506
+ if (this.epsg !== undefined)
67507
+ data.epsg = this.epsg;
67508
+ return data;
67497
67509
  }
67498
- /** Compares two vertical CRS.
67510
+ /** Strictly compares the stored properties of two vertical CRS, not their resolved identities.
67499
67511
  * @public */
67500
67512
  equals(other) {
67501
- return (this.id === other.id);
67513
+ return this.id === other.id && this.crsName === other.crsName && this.epsg === other.epsg;
67502
67514
  }
67503
67515
  }
67504
67516
  /** Geographic Coordinate Reference System implementation. This is the class that indicates the definition of a Geographic
@@ -112238,12 +112250,27 @@ class IModelApp {
112238
112250
  static get publicPath() { return this._publicPath; }
112239
112251
  /** The [[FormatsProvider]] for this session.
112240
112252
  * @param provider The provider to use for formatting quantities.
112253
+ * @note Prefer [[IModelApp.setFormatsProvider]] when replacing the provider; assigning this property starts an asynchronous reload without returning a promise.
112241
112254
  * @beta
112242
112255
  */
112243
112256
  static get formatsProvider() { return this._formatsProviderManager; }
112244
112257
  static set formatsProvider(provider) {
112245
112258
  this._formatsProviderManager.formatsProvider = provider;
112246
112259
  }
112260
+ /**
112261
+ * Replaces the formats provider and optionally changes the active unit system.
112262
+ * Resolves after the formatter has rebuilt its formatting and parsing caches.
112263
+ * Incompatible provider entries are logged and skipped, so they do not reject this Promise.
112264
+ * If the reload fails, this Promise rejects and the new provider stays installed. The formatter remains usable, but some cached formats may still come from the previous provider.
112265
+ * If a later setFormatsProvider call supersedes this request, this Promise rejects.
112266
+ * It also rejects if the application shuts down first.
112267
+ * @beta
112268
+ */
112269
+ static async setFormatsProvider(provider, options) {
112270
+ await this.quantityFormatter.runAndWaitForReload(() => {
112271
+ this._formatsProviderManager.setFormatsProvider(provider, options?.unitSystem);
112272
+ });
112273
+ }
112247
112274
  /** @alpha */
112248
112275
  static extensionAdmin = this._createExtensionAdmin();
112249
112276
  /** Map of classFullName to EntityState class */
@@ -117034,28 +117061,21 @@ class RealityDataSourceCesiumIonAssetImpl {
117034
117061
  // The following is only if the reality data is not stored on PW Context Share.
117035
117062
  const cesiumAsset = _tile_internal__WEBPACK_IMPORTED_MODULE_3__.CesiumIonAssetProvider.parseCesiumUrl(url);
117036
117063
  if (cesiumAsset) {
117037
- let resolvedToken;
117038
- let resolvedUrl;
117064
+ let endpoint;
117039
117065
  if (cesiumAsset.key) {
117040
117066
  // Legacy key-bearing URL (e.g. persisted saved view) - authenticate directly with the embedded Ion key.
117041
117067
  // Such URLs are intentionally exempt from the cesiumAccess-over-cesiumIonKey precedence rule and are not
117042
117068
  // routed through a registered CesiumAccessClient; see [[CesiumAccessClient]].
117043
- const tokenAndUrl = await (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.getCesiumAccessTokenAndEndpointUrl)(`${cesiumAsset.id}`, cesiumAsset.key);
117044
- resolvedToken = tokenAndUrl.token;
117045
- resolvedUrl = tokenAndUrl.url;
117069
+ const result = await (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.getCesiumAccessTokenAndEndpointUrl)(`${cesiumAsset.id}`, cesiumAsset.key);
117070
+ endpoint = "endpoint" in result ? result.endpoint : undefined;
117046
117071
  }
117047
117072
  else {
117048
117073
  // delegate to the registered CesiumAccessClient
117049
- const client = (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.getCesiumAccessClient)();
117050
- const endpoint = await client.getAssetEndpoint(`${cesiumAsset.id}`, iTwinId);
117051
- if (endpoint) {
117052
- resolvedToken = endpoint.accessToken;
117053
- resolvedUrl = endpoint.url;
117054
- }
117074
+ endpoint = await (0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.getCesiumAccessClient)().getAssetEndpoint(`${cesiumAsset.id}`, iTwinId);
117055
117075
  }
117056
- if (resolvedUrl && resolvedToken) {
117057
- url = resolvedUrl;
117058
- this._requestAuthorization = `Bearer ${resolvedToken}`;
117076
+ if (endpoint?.url && endpoint.accessToken) {
117077
+ url = endpoint.url;
117078
+ this._requestAuthorization = `Bearer ${endpoint.accessToken}`;
117059
117079
  }
117060
117080
  }
117061
117081
  // The following is only if the reality data is not stored on PW Context Share.
@@ -174476,16 +174496,16 @@ async function computeVerticalDatumShift(geoOrigin, heightAsEllipsoidalDbZ, iMod
174476
174496
  return 0;
174477
174497
  // The backend always resolves the vertical datum id. Convert against the iModel's own datum.
174478
174498
  let source;
174479
- const verticalDatum = iModel.geographicCoordinateSystem?.verticalCRS?.id;
174480
- switch (verticalDatum) {
174499
+ const verticalCRS = iModel.geographicCoordinateSystem?.verticalCRS;
174500
+ switch (verticalCRS?.id) {
174481
174501
  // Pair GEOID with a WGS84 horizontal CRS (EPSG:4326).
174482
174502
  case "GEOID":
174483
- source = { horizontalCRS: { epsg: 4326 }, verticalCRS: { id: "GEOID" } };
174503
+ source = { horizontalCRS: { epsg: 4326 }, verticalCRS: verticalCRS.toJSON() };
174484
174504
  break;
174485
174505
  // Native rejects NAVD88 and NGVD29 with WGS84; pair them with NAD83 (EPSG:4269).
174486
174506
  case "NAVD88":
174487
174507
  case "NGVD29":
174488
- source = { horizontalCRS: { epsg: 4269 }, verticalCRS: { id: verticalDatum } };
174508
+ source = { horizontalCRS: { epsg: 4269 }, verticalCRS: verticalCRS.toJSON() };
174489
174509
  break;
174490
174510
  default:
174491
174511
  return 0;
@@ -181342,6 +181362,161 @@ class BaseUnitFormattingSettingsProvider {
181342
181362
  }
181343
181363
 
181344
181364
 
181365
+ /***/ },
181366
+
181367
+ /***/ "../../core/frontend/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.js"
181368
+ /*!*******************************************************************************************!*\
181369
+ !*** ../../core/frontend/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.js ***!
181370
+ \*******************************************************************************************/
181371
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
181372
+
181373
+ "use strict";
181374
+ __webpack_require__.r(__webpack_exports__);
181375
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
181376
+ /* harmony export */ FormatsProviderReloadCoordinator: () => (/* binding */ FormatsProviderReloadCoordinator),
181377
+ /* harmony export */ ReloadSupersededError: () => (/* binding */ ReloadSupersededError)
181378
+ /* harmony export */ });
181379
+ /*---------------------------------------------------------------------------------------------
181380
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
181381
+ * See LICENSE.md in the project root for license terms and full copyright notice.
181382
+ *--------------------------------------------------------------------------------------------*/
181383
+ /** @internal */
181384
+ class ReloadSupersededError extends Error {
181385
+ constructor() {
181386
+ super("QuantityFormatter reload was superseded by a newer request.");
181387
+ this.name = "ReloadSupersededError";
181388
+ }
181389
+ }
181390
+ /**
181391
+ * Serializes formatting reloads and resolves or rejects the caller waiting for formatting to become ready.
181392
+ * @internal
181393
+ */
181394
+ class FormatsProviderReloadCoordinator {
181395
+ _host;
181396
+ _disposedError;
181397
+ _reloadInFlight = false;
181398
+ _pendingReload;
181399
+ _pendingFormatsChange;
181400
+ _reloadCaller;
181401
+ _isDisposed = false;
181402
+ constructor(_host, _disposedError) {
181403
+ this._host = _host;
181404
+ this._disposedError = _disposedError;
181405
+ }
181406
+ dispose() {
181407
+ if (this._isDisposed)
181408
+ return;
181409
+ this._isDisposed = true;
181410
+ this._pendingReload = undefined;
181411
+ this._pendingFormatsChange = undefined;
181412
+ this._rejectReloadCaller(this._disposedError);
181413
+ }
181414
+ /**
181415
+ * Runs an action that schedules a reload and waits for the reload queue to drain.
181416
+ * A newer call rejects an older call that is still waiting.
181417
+ */
181418
+ async runAndWaitForReload(action) {
181419
+ if (this._isDisposed)
181420
+ throw this._disposedError;
181421
+ let caller;
181422
+ const reload = new Promise((resolve, reject) => {
181423
+ caller = { resolve, reject };
181424
+ });
181425
+ this._rejectReloadCaller(new ReloadSupersededError());
181426
+ this._reloadCaller = caller;
181427
+ try {
181428
+ action();
181429
+ }
181430
+ catch (error) {
181431
+ if (this._reloadCaller === caller)
181432
+ this._reloadCaller = undefined;
181433
+ throw error;
181434
+ }
181435
+ await reload;
181436
+ }
181437
+ /**
181438
+ * Runs a reload now, or queues it if one is already running.
181439
+ * Pending format changes are merged and kept apart from other pending reloads, so a later unit-system or units-provider reload cannot drop a provider change.
181440
+ * If a reload is already running, this method returns immediately; use [[runAndWaitForReload]] when the caller must wait for completion.
181441
+ * The waiting caller is rejected if any reload fails before the queue drains.
181442
+ */
181443
+ async scheduleReload(intent) {
181444
+ if (this._isDisposed)
181445
+ return;
181446
+ if (this._reloadInFlight) {
181447
+ if (intent.scope === "formatsChanged")
181448
+ this._pendingFormatsChange = mergeFormatsChanges(this._pendingFormatsChange, intent);
181449
+ else
181450
+ this._pendingReload = intent;
181451
+ return;
181452
+ }
181453
+ this._reloadInFlight = true;
181454
+ let failure;
181455
+ let current = intent;
181456
+ while (current) {
181457
+ try {
181458
+ this._host.startReload();
181459
+ await this._host.executeReload(current);
181460
+ if (this._stopAfterDisposal())
181461
+ return;
181462
+ current = this._takePendingReload();
181463
+ if (!current) {
181464
+ await this._host.finalizeReload();
181465
+ if (this._stopAfterDisposal())
181466
+ return;
181467
+ current = this._takePendingReload();
181468
+ }
181469
+ }
181470
+ catch (error) {
181471
+ if (this._stopAfterDisposal())
181472
+ return;
181473
+ // Keep draining so queued work still runs, but report the failure to the waiting caller.
181474
+ this._host.handleReloadFailure(error);
181475
+ failure = { error };
181476
+ current = this._takePendingReload();
181477
+ }
181478
+ }
181479
+ this._reloadInFlight = false;
181480
+ if (failure)
181481
+ this._rejectReloadCaller(failure.error);
181482
+ else
181483
+ this._resolveReloadCaller();
181484
+ }
181485
+ _stopAfterDisposal() {
181486
+ if (!this._isDisposed)
181487
+ return false;
181488
+ this._reloadInFlight = false;
181489
+ return true;
181490
+ }
181491
+ _takePendingReload() {
181492
+ const next = this._pendingFormatsChange ?? this._pendingReload;
181493
+ if (next === this._pendingFormatsChange)
181494
+ this._pendingFormatsChange = undefined;
181495
+ else
181496
+ this._pendingReload = undefined;
181497
+ return next;
181498
+ }
181499
+ _resolveReloadCaller() {
181500
+ const caller = this._reloadCaller;
181501
+ this._reloadCaller = undefined;
181502
+ caller?.resolve();
181503
+ }
181504
+ _rejectReloadCaller(error) {
181505
+ const caller = this._reloadCaller;
181506
+ this._reloadCaller = undefined;
181507
+ caller?.reject(error);
181508
+ }
181509
+ }
181510
+ function mergeFormatsChanges(pending, next) {
181511
+ if (!pending)
181512
+ return next;
181513
+ const pendingNames = pending.args.formatsChanged;
181514
+ const nextNames = next.args.formatsChanged;
181515
+ const formatsChanged = pendingNames === "all" || nextNames === "all" ? "all" : [...new Set([...pendingNames, ...nextNames])];
181516
+ return { scope: "formatsChanged", args: { formatsChanged } };
181517
+ }
181518
+
181519
+
181345
181520
  /***/ },
181346
181521
 
181347
181522
  /***/ "../../core/frontend/lib/esm/quantity-formatting/LocalUnitFormatProvider.js"
@@ -181450,6 +181625,7 @@ __webpack_require__.r(__webpack_exports__);
181450
181625
  /* harmony import */ var _common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/FrontendLoggerCategory */ "../../core/frontend/lib/esm/common/FrontendLoggerCategory.js");
181451
181626
  /* harmony import */ var _IModelApp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../IModelApp */ "../../core/frontend/lib/esm/IModelApp.js");
181452
181627
  /* harmony import */ var _AlternateUnitLabels__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AlternateUnitLabels */ "../../core/frontend/lib/esm/quantity-formatting/AlternateUnitLabels.js");
181628
+ /* harmony import */ var _FormatsProviderReloadCoordinator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FormatsProviderReloadCoordinator */ "../../core/frontend/lib/esm/quantity-formatting/FormatsProviderReloadCoordinator.js");
181453
181629
  /*---------------------------------------------------------------------------------------------
181454
181630
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
181455
181631
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -181462,6 +181638,7 @@ __webpack_require__.r(__webpack_exports__);
181462
181638
 
181463
181639
 
181464
181640
 
181641
+
181465
181642
  // cSpell:ignore FORMATPROPS FORMATKEY ussurvey uscustomary USCUSTOM
181466
181643
  /**
181467
181644
  * Defines standard format types for tools that need to display measurements to user.
@@ -181646,12 +181823,24 @@ class FormatsProviderManager {
181646
181823
  }
181647
181824
  get formatsProvider() { return this; }
181648
181825
  set formatsProvider(formatsProvider) {
181826
+ this.setFormatsProvider(formatsProvider);
181827
+ }
181828
+ /**
181829
+ * Replaces the underlying formats provider and raises an event indicating that all formats changed.
181830
+ * @param formatsProvider The formats provider to use for subsequent format lookups.
181831
+ * @param impliedUnitSystem The unit system implied by the replacement provider, if any. Not stored here; [[QuantityFormatter]] applies it as the active unit system when handling `onFormatsChanged`.
181832
+ * @internal
181833
+ */
181834
+ setFormatsProvider(formatsProvider, impliedUnitSystem) {
181649
181835
  this._removeProviderListener?.();
181650
181836
  this._formatsProvider = formatsProvider;
181651
181837
  this._removeProviderListener = this._formatsProvider.onFormatsChanged.addListener((args) => {
181652
181838
  this.onFormatsChanged.raiseEvent(args);
181653
181839
  });
181654
- this.onFormatsChanged.raiseEvent({ formatsChanged: "all" });
181840
+ const args = { formatsChanged: "all" };
181841
+ if (impliedUnitSystem !== undefined)
181842
+ args.impliedUnitSystem = impliedUnitSystem;
181843
+ this.onFormatsChanged.raiseEvent(args);
181655
181844
  }
181656
181845
  }
181657
181846
  /** The QuantityFormatter class provides methods for formatting and parsing quantities. There are a set of standard quantity types
@@ -181732,10 +181921,13 @@ class QuantityFormatter {
181732
181921
  _hasEverBeenReady = false;
181733
181922
  _initializedPromise;
181734
181923
  _resolveInitialized;
181735
- _reloadInFlight = false;
181736
- _pendingReload;
181737
- _deferredSystemChangedEmit;
181924
+ _emitSystemChangedOnReady = false;
181925
+ _isDisposed = false;
181926
+ _disposedError = new Error("QuantityFormatter was disposed before the reload completed.");
181927
+ _reloadCoordinator;
181738
181928
  _removeFormatsProviderListener;
181929
+ _activeFormatSpecsTarget;
181930
+ _activeParserSpecsTarget;
181739
181931
  /**
181740
181932
  * constructor
181741
181933
  * @param showMetricOrUnitSystem - Pass in `true` to show Metric formatted quantity values. Defaults to Imperial. To explicitly
@@ -181745,6 +181937,12 @@ class QuantityFormatter {
181745
181937
  this._initializedPromise = new Promise((resolve) => {
181746
181938
  this._resolveInitialized = resolve;
181747
181939
  });
181940
+ this._reloadCoordinator = new _FormatsProviderReloadCoordinator__WEBPACK_IMPORTED_MODULE_5__.FormatsProviderReloadCoordinator({
181941
+ startReload: () => { this._isReady = false; },
181942
+ executeReload: async (intent) => this._executeReload(intent),
181943
+ finalizeReload: async () => this.finalizeReload(),
181944
+ handleReloadFailure: (error) => this._handleReloadFailure(error),
181945
+ }, this._disposedError);
181748
181946
  if (undefined !== showMetricOrUnitSystem) {
181749
181947
  if (typeof showMetricOrUnitSystem === "boolean")
181750
181948
  this._activeUnitSystem = showMetricOrUnitSystem ? "metric" : "imperial";
@@ -181753,70 +181951,44 @@ class QuantityFormatter {
181753
181951
  }
181754
181952
  }
181755
181953
  [Symbol.dispose]() {
181954
+ if (this._isDisposed)
181955
+ return;
181956
+ this._isDisposed = true;
181957
+ this._isReady = false;
181958
+ this._emitSystemChangedOnReady = false;
181959
+ this._reloadCoordinator.dispose();
181756
181960
  if (this._removeFormatsProviderListener) {
181757
181961
  this._removeFormatsProviderListener();
181758
181962
  this._removeFormatsProviderListener = undefined;
181759
181963
  }
181760
181964
  }
181965
+ /** Runs an action that schedules a reload and waits for the reload queue to drain.
181966
+ * The most recent call wins. If another call is made before this reload queue drains, this call is rejected.
181967
+ * @internal
181968
+ */
181969
+ async runAndWaitForReload(action) {
181970
+ return this._reloadCoordinator.runAndWaitForReload(action);
181971
+ }
181761
181972
  /** Schedule an async reload. If no reload is in flight, runs immediately. If a reload is
181762
- * already in flight, stores the intent as pending (latest-wins: only the last scheduled reload
181763
- * is kept). `finalizeReload()` fires only when the queue is fully drained.
181973
+ * already in flight, stores the intent as pending. Pending format changes are merged and run before
181974
+ * the latest other pending intent. `finalizeReload()` fires only when the queue is fully drained.
181764
181975
  *
181765
181976
  * **Await semantics:** When a reload is already in flight, the returned promise resolves
181766
181977
  * immediately *without* the requested reload having run. Callers that need to know when
181767
- * the reload has actually completed should listen for `onFormattingReady` instead.
181978
+ * an explicitly triggered reload has actually completed should use [[runAndWaitForReload]].
181768
181979
  *
181769
- * Reload intents:
181770
- * - `"full"` — rebuild entire registry + re-register provider listener (onInitialized, setUnitsProvider)
181771
- * - `"formatsChanged"` — patch registry from provider + load maps (formatsChanged listener)
181772
- * - `"activeSystem"` — reload format/parsing maps for current unit system (setActiveUnitSystem, reinitializeFormatAndParsingsMaps)
181773
181980
  * @internal
181774
181981
  */
181775
181982
  async scheduleReload(intent) {
181776
- if (this._reloadInFlight) {
181777
- // A reload is already running — queue this one (latest-wins)
181778
- this._pendingReload = intent;
181779
- return;
181780
- }
181781
- this._reloadInFlight = true;
181782
- this._isReady = false;
181783
- this._deferredSystemChangedEmit = undefined; // Clear stale deferred from prior cycle
181784
- try {
181785
- await this._executeReload(intent);
181786
- }
181787
- catch (err) {
181788
- _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.QuantityFormatter`, _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BentleyError.getErrorMessage(err));
181789
- this._reloadInFlight = false;
181790
- // If there's a pending reload, still try to run it
181791
- if (this._pendingReload) {
181792
- const next = this._pendingReload;
181793
- this._pendingReload = undefined;
181794
- return this.scheduleReload(next);
181795
- }
181796
- // Restore prior ready state so stale-but-usable specs remain accessible
181797
- if (this._hasEverBeenReady) {
181798
- _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.QuantityFormatter`, "Reload failed — restoring previous ready state. Cached specs may be stale.");
181799
- this._isReady = true;
181800
- }
181801
- return;
181802
- }
181803
- // Current reload succeeded — check if another was queued
181804
- if (this._pendingReload) {
181805
- const next = this._pendingReload;
181806
- this._pendingReload = undefined;
181807
- this._reloadInFlight = false;
181808
- return this.scheduleReload(next);
181809
- }
181810
- // Queue is drained — finalize
181811
- await this.finalizeReload();
181812
- // A new reload may have been queued during the async finalizeReload window
181813
- if (this._pendingReload) {
181814
- const next = this._pendingReload;
181815
- this._pendingReload = undefined;
181816
- this._reloadInFlight = false;
181817
- return this.scheduleReload(next);
181983
+ return this._reloadCoordinator.scheduleReload(intent);
181984
+ }
181985
+ _handleReloadFailure(error) {
181986
+ if (!this._isDisposed)
181987
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logError(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.QuantityFormatter`, _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BentleyError.getErrorMessage(error));
181988
+ if (this._hasEverBeenReady && !this._isDisposed) {
181989
+ _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(`${_common_FrontendLoggerCategory__WEBPACK_IMPORTED_MODULE_2__.FrontendLoggerCategory.Package}.QuantityFormatter`, "Reload failed — restoring previous ready state. Cached specs may be stale.");
181990
+ this._isReady = true;
181818
181991
  }
181819
- this._reloadInFlight = false;
181820
181992
  }
181821
181993
  /** Execute the reload work for a given intent. All reload logic is centralized here.
181822
181994
  * @internal
@@ -181825,47 +181997,51 @@ class QuantityFormatter {
181825
181997
  switch (intent.scope) {
181826
181998
  case "full":
181827
181999
  await this._reloadCore();
181828
- break;
181829
- case "formatsChanged": {
181830
- const { args } = intent;
181831
- await this._rebuildRegistryFromProvider(args);
181832
- if (args.impliedUnitSystem && args.impliedUnitSystem !== this._activeUnitSystem) {
181833
- this._activeUnitSystem = args.impliedUnitSystem;
181834
- }
181835
- await this.loadFormatAndParsingMapsForSystem(this._activeUnitSystem);
181836
- if (args.impliedUnitSystem) {
181837
- this._deferredSystemChangedEmit = { system: this._activeUnitSystem };
181838
- }
181839
- break;
181840
- }
181841
- case "activeSystem":
181842
- await this.loadFormatAndParsingMapsForSystem(this._activeUnitSystem);
181843
- if (intent.emitSystemChanged) {
181844
- this._deferredSystemChangedEmit = { system: this._activeUnitSystem };
181845
- }
182000
+ return;
182001
+ case "formatsChanged":
182002
+ await this._rebuildRegistryFromProvider(intent.args);
181846
182003
  break;
181847
182004
  }
182005
+ // Build the active specs in temporary maps so readers keep using complete specs until the new ones are ready.
182006
+ const nextFormatSpecs = new Map();
182007
+ const nextParserSpecs = new Map();
182008
+ this._activeFormatSpecsTarget = nextFormatSpecs;
182009
+ this._activeParserSpecsTarget = nextParserSpecs;
182010
+ try {
182011
+ await this.loadFormatAndParsingMapsForSystem(this._activeUnitSystem);
182012
+ }
182013
+ finally {
182014
+ this._activeFormatSpecsTarget = undefined;
182015
+ this._activeParserSpecsTarget = undefined;
182016
+ }
182017
+ this._activeFormatSpecsByType = nextFormatSpecs;
182018
+ this._activeParserSpecsByType = nextParserSpecs;
181848
182019
  }
181849
182020
  /** Called when the reload queue is fully drained after a successful reload.
181850
182021
  * Sets `isReady` to true, resolves `whenInitialized` (one-shot), and emits ready events.
181851
182022
  * @internal
181852
182023
  */
181853
182024
  async finalizeReload() {
182025
+ if (this._isDisposed)
182026
+ return;
181854
182027
  // Phase 1: Let providers register async work
181855
182028
  const collector = new _itwin_core_quantity__WEBPACK_IMPORTED_MODULE_1__.FormattingReadyCollector();
181856
182029
  this.onBeforeFormattingReady.raiseEvent(collector);
181857
182030
  await collector.awaitAll();
182031
+ if (this._isDisposed)
182032
+ return;
181858
182033
  // Phase 2: Signal ready to consumers
181859
182034
  this._isReady = true;
181860
182035
  this._hasEverBeenReady = true;
181861
182036
  this._resolveInitialized();
181862
182037
  this.onFormattingReady.emit();
181863
- // Phase 3: Emit deferred unit-system-changed if the winning reload set one.
182038
+ if (this._isDisposed)
182039
+ return;
182040
+ // Phase 3: Emit unit-system-changed if the unit system was changed since the last ready state, reporting the system that is now active.
181864
182041
  // This fires after isReady === true so listeners can safely use the formatter.
181865
- if (this._deferredSystemChangedEmit) {
181866
- const args = this._deferredSystemChangedEmit;
181867
- this._deferredSystemChangedEmit = undefined;
181868
- this.onActiveFormattingUnitSystemChanged.emit(args);
182042
+ if (this._emitSystemChangedOnReady) {
182043
+ this._emitSystemChangedOnReady = false;
182044
+ this.onActiveFormattingUnitSystemChanged.emit({ system: this._activeUnitSystem });
181869
182045
  }
181870
182046
  }
181871
182047
  getOverrideFormatPropsByQuantityType(quantityTypeKey, unitSystem) {
@@ -181936,8 +182112,8 @@ class QuantityFormatter {
181936
182112
  async loadFormatAndParserSpec(quantityTypeDefinition, formatProps) {
181937
182113
  const formatterSpec = await quantityTypeDefinition.generateFormatterSpec(formatProps, this.unitsProvider);
181938
182114
  const parserSpec = await quantityTypeDefinition.generateParserSpec(formatProps, this.unitsProvider, this.alternateUnitLabelsProvider);
181939
- this._activeFormatSpecsByType.set(quantityTypeDefinition.key, formatterSpec);
181940
- this._activeParserSpecsByType.set(quantityTypeDefinition.key, parserSpec);
182115
+ (this._activeFormatSpecsTarget ?? this._activeFormatSpecsByType).set(quantityTypeDefinition.key, formatterSpec);
182116
+ (this._activeParserSpecsTarget ?? this._activeParserSpecsByType).set(quantityTypeDefinition.key, parserSpec);
181941
182117
  }
181942
182118
  // repopulate formatSpec and parserSpec entries using only default format
181943
182119
  async loadDefaultFormatAndParserSpecForQuantity(typeKey) {
@@ -181994,17 +182170,20 @@ class QuantityFormatter {
181994
182170
  * @internal
181995
182171
  */
181996
182172
  async onInitialized() {
182173
+ // Register once, before the first reload, so provider changes made while a units-provider reload is running are not missed.
182174
+ this._removeFormatsProviderListener ??= _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.onFormatsChanged.addListener((args) => {
182175
+ if (args.impliedUnitSystem && args.impliedUnitSystem !== this._activeUnitSystem) {
182176
+ this._activeUnitSystem = args.impliedUnitSystem;
182177
+ this._emitSystemChangedOnReady = true;
182178
+ }
182179
+ void this.scheduleReload({ scope: "formatsChanged", args });
182180
+ });
181997
182181
  await this.scheduleReload({ scope: "full" });
181998
182182
  }
181999
182183
  /** Core reload logic — does all async I/O and cache rebuilding without events or state management.
182000
182184
  * @internal
182001
182185
  */
182002
182186
  async _reloadCore() {
182003
- // Remove any existing listener before re-registering to avoid duplicates when called via setUnitsProvider.
182004
- if (this._removeFormatsProviderListener) {
182005
- this._removeFormatsProviderListener();
182006
- this._removeFormatsProviderListener = undefined;
182007
- }
182008
182187
  await this.initializeQuantityTypesRegistry();
182009
182188
  const initialKoQs = [["DefaultToolsUnits.LENGTH", "Units.M"], ["DefaultToolsUnits.ANGLE", "Units.RAD"], ["DefaultToolsUnits.AREA", "Units.SQ_M"], ["DefaultToolsUnits.VOLUME", "Units.CUB_M"], ["DefaultToolsUnits.LENGTH_COORDINATE", "Units.M"], ["CivilUnits.STATION", "Units.M"], ["CivilUnits.LENGTH", "Units.M"], ["AecUnits.LENGTH", "Units.M"]];
182010
182189
  for (const entry of initialKoQs) {
@@ -182017,10 +182196,6 @@ class QuantityFormatter {
182017
182196
  }
182018
182197
  }
182019
182198
  }
182020
- // Register formatsProvider listener that triggers a queued reload when formats change
182021
- this._removeFormatsProviderListener = _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.formatsProvider.onFormatsChanged.addListener((args) => {
182022
- void this.scheduleReload({ scope: "formatsChanged", args });
182023
- });
182024
182199
  // initialize default format and parsing specs
182025
182200
  await this.loadFormatAndParsingMapsForSystem();
182026
182201
  }
@@ -182114,6 +182289,9 @@ class QuantityFormatter {
182114
182289
  await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.quantityFormatter.resetToUseInternalUnitsProvider();
182115
182290
  return;
182116
182291
  }
182292
+ // Disposal can occur while the reload is awaited, so do not notify afterward.
182293
+ if (this._isDisposed)
182294
+ return;
182117
182295
  this.onUnitsProviderChanged.emit();
182118
182296
  }
182119
182297
  /**
@@ -182153,7 +182331,11 @@ class QuantityFormatter {
182153
182331
  this._overrideFormatPropsByUnitSystem = overrideFormatPropsByUnitSystem;
182154
182332
  }
182155
182333
  unitSystemKey && (this._activeUnitSystem = unitSystemKey);
182156
- await this.scheduleReload({ scope: "activeSystem", emitSystemChanged: fireUnitSystemChanged });
182334
+ if (fireUnitSystemChanged)
182335
+ this._emitSystemChangedOnReady = true;
182336
+ await this.scheduleReload({ scope: "activeSystem" });
182337
+ if (this._isDisposed)
182338
+ return;
182157
182339
  _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin && startDefaultTool && await _IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin.startDefaultTool();
182158
182340
  }
182159
182341
  /** Set the Active unit system to one of the supported types. This will asynchronously load the formatter and parser specs for the activated system. */
@@ -182166,7 +182348,10 @@ class QuantityFormatter {
182166
182348
  if (this._activeUnitSystem === systemType)
182167
182349
  return;
182168
182350
  this._activeUnitSystem = systemType;
182169
- await this.scheduleReload({ scope: "activeSystem", emitSystemChanged: true });
182351
+ this._emitSystemChangedOnReady = true;
182352
+ await this.scheduleReload({ scope: "activeSystem" });
182353
+ if (this._isDisposed)
182354
+ return;
182170
182355
  // allow settings provider to store the change
182171
182356
  await this._unitFormattingSettingsProvider?.storeUnitSystemSetting({ system: systemType });
182172
182357
  if (_IModelApp__WEBPACK_IMPORTED_MODULE_3__.IModelApp.toolAdmin && restartActiveTool)
@@ -192888,6 +193073,7 @@ __webpack_require__.r(__webpack_exports__);
192888
193073
  /* harmony export */ getCesiumAccessTokenAndEndpointUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumAccessTokenAndEndpointUrl),
192889
193074
  /* harmony export */ getCesiumAssetUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumAssetUrl),
192890
193075
  /* harmony export */ getCesiumOSMBuildingsUrl: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumOSMBuildingsUrl),
193076
+ /* harmony export */ getCesiumTerrainEndpointErrorDescription: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumTerrainEndpointErrorDescription),
192891
193077
  /* harmony export */ getCesiumTerrainProvider: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.getCesiumTerrainProvider),
192892
193078
  /* harmony export */ getGcsConverterAvailable: () => (/* reexport safe */ _map_MapTileTree__WEBPACK_IMPORTED_MODULE_65__.getGcsConverterAvailable),
192893
193079
  /* harmony export */ getMeshPrimitives: () => (/* reexport safe */ _GltfReader__WEBPACK_IMPORTED_MODULE_32__.getMeshPrimitives),
@@ -192903,6 +193089,7 @@ __webpack_require__.r(__webpack_exports__);
192903
193089
  /* harmony export */ readImdlContent: () => (/* reexport safe */ _ImdlReader__WEBPACK_IMPORTED_MODULE_35__.readImdlContent),
192904
193090
  /* harmony export */ readPntsColors: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_76__.readPntsColors),
192905
193091
  /* harmony export */ readPointCloudTileContent: () => (/* reexport safe */ _internal_tile_PntsReader__WEBPACK_IMPORTED_MODULE_76__.readPointCloudTileContent),
193092
+ /* harmony export */ resolveCesiumTerrainEndpoint: () => (/* reexport safe */ _map_CesiumTerrainProvider__WEBPACK_IMPORTED_MODULE_68__.resolveCesiumTerrainEndpoint),
192906
193093
  /* harmony export */ tileTreeReferenceFromRenderGraphic: () => (/* reexport safe */ _RenderGraphicTileTree__WEBPACK_IMPORTED_MODULE_78__.tileTreeReferenceFromRenderGraphic),
192907
193094
  /* harmony export */ tryGetOrigin: () => (/* reexport safe */ _map_MapLayerImageryProvider__WEBPACK_IMPORTED_MODULE_49__.tryGetOrigin)
192908
193095
  /* harmony export */ });
@@ -193283,7 +193470,9 @@ __webpack_require__.r(__webpack_exports__);
193283
193470
  /* harmony export */ getCesiumAccessTokenAndEndpointUrl: () => (/* binding */ getCesiumAccessTokenAndEndpointUrl),
193284
193471
  /* harmony export */ getCesiumAssetUrl: () => (/* binding */ getCesiumAssetUrl),
193285
193472
  /* harmony export */ getCesiumOSMBuildingsUrl: () => (/* binding */ getCesiumOSMBuildingsUrl),
193286
- /* harmony export */ getCesiumTerrainProvider: () => (/* binding */ getCesiumTerrainProvider)
193473
+ /* harmony export */ getCesiumTerrainEndpointErrorDescription: () => (/* binding */ getCesiumTerrainEndpointErrorDescription),
193474
+ /* harmony export */ getCesiumTerrainProvider: () => (/* binding */ getCesiumTerrainProvider),
193475
+ /* harmony export */ resolveCesiumTerrainEndpoint: () => (/* binding */ resolveCesiumTerrainEndpoint)
193287
193476
  /* harmony export */ });
193288
193477
  /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
193289
193478
  /* harmony import */ var _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-geometry */ "../../core/geometry/lib/esm/core-geometry.js");
@@ -193350,45 +193539,76 @@ function computeCesiumTokenTimeoutInterval(expiresAt) {
193350
193539
  return cesiumTokenTimeoutInterval;
193351
193540
  return _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.BeDuration.fromMilliseconds(Math.max(remainingMs, cesiumMinTokenTimeoutInterval.milliseconds));
193352
193541
  }
193542
+ /** HTTP statuses Cesium Ion returns when the access token is invalid or lacks access to the asset. */
193543
+ const cesiumRejectedKeyStatuses = [401, 403, 404];
193353
193544
  /** @internal */
193354
193545
  async function getCesiumAccessTokenAndEndpointUrl(assetId, requestKey) {
193355
193546
  if (undefined === requestKey) {
193356
193547
  requestKey = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.tileAdmin.cesiumIonKey;
193357
193548
  if (undefined === requestKey)
193358
- return {};
193549
+ return { failure: "missingKey" };
193359
193550
  }
193360
193551
  const requestTemplate = `https://api.cesium.com/v1/assets/${assetId}/endpoint?access_token={CesiumRequestToken}`;
193361
193552
  const apiUrl = requestTemplate.replace("{CesiumRequestToken}", requestKey);
193362
193553
  try {
193363
193554
  const apiResponse = await (0,_request_Request__WEBPACK_IMPORTED_MODULE_4__.request)(apiUrl, "json");
193364
- if (undefined === apiResponse || undefined === apiResponse.url) {
193365
- (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false);
193366
- return {};
193367
- }
193368
- return { token: apiResponse.accessToken, url: apiResponse.url };
193555
+ const url = apiResponse?.url;
193556
+ const accessToken = apiResponse?.accessToken;
193557
+ if (typeof url !== "string" || !url || typeof accessToken !== "string" || !accessToken)
193558
+ return { failure: "unavailable" };
193559
+ return { endpoint: { accessToken, url } };
193560
+ }
193561
+ catch (err) {
193562
+ // Expected when offline or when the key is rejected - not a programming error.
193563
+ if (err instanceof _request_Request__WEBPACK_IMPORTED_MODULE_4__.HttpResponseError && cesiumRejectedKeyStatuses.includes(err.status))
193564
+ return { failure: "rejected" };
193565
+ return { failure: "unavailable" };
193566
+ }
193567
+ }
193568
+ const terrainFailureMessageKeys = {
193569
+ missingKey: "MissingCesiumToken",
193570
+ rejected: "InvalidCesiumToken",
193571
+ unavailable: "TerrainServiceUnavailable",
193572
+ };
193573
+ /** Returns the localized detail message to display when a Cesium terrain endpoint cannot be resolved.
193574
+ * @internal
193575
+ */
193576
+ function getCesiumTerrainEndpointErrorDescription(failure) {
193577
+ return _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.${terrainFailureMessageKeys[failure]}`);
193578
+ }
193579
+ /** Resolve the terrain asset endpoint. A custom [[CesiumAccessClient]] cannot report why it failed, so its
193580
+ * failures are reported as `unavailable`; the built-in Cesium Ion client reports the specific reason.
193581
+ * @internal
193582
+ */
193583
+ async function resolveCesiumTerrainEndpoint(assetId, iTwinId) {
193584
+ const customClient = _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.tileAdmin.cesiumAccess;
193585
+ if (!customClient)
193586
+ return getCesiumAccessTokenAndEndpointUrl(assetId);
193587
+ try {
193588
+ const endpoint = await customClient.getAssetEndpoint(assetId, iTwinId);
193589
+ return endpoint ? { endpoint } : { failure: "unavailable" };
193369
193590
  }
193370
193591
  catch {
193371
- ;(0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(false);
193372
- return {};
193592
+ return { failure: "unavailable" };
193373
193593
  }
193374
193594
  }
193375
193595
  let notifiedTerrainError = false;
193376
193596
  // Notify - once per session - of failure to obtain Cesium terrain provider.
193377
- function notifyTerrainError(detailedDescription) {
193597
+ function notifyTerrainError(failure) {
193378
193598
  if (notifiedTerrainError)
193379
193599
  return;
193380
193600
  notifiedTerrainError = true;
193381
- _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.displayMessage(_itwin_appui_abstract__WEBPACK_IMPORTED_MODULE_3__.MessageSeverity.Information, _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.CannotObtainTerrain`), detailedDescription);
193601
+ _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.notifications.displayMessage(_itwin_appui_abstract__WEBPACK_IMPORTED_MODULE_3__.MessageSeverity.Information, _IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.CannotObtainTerrain`), getCesiumTerrainEndpointErrorDescription(failure));
193382
193602
  }
193383
193603
  /** @internal */
193384
193604
  async function getCesiumTerrainProvider(opts) {
193385
193605
  const assetId = opts.dataSource || _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.CesiumTerrainAssetId.Default;
193386
- const client = getCesiumAccessClient();
193387
- const endpoint = await client.getAssetEndpoint(assetId, opts.iTwinId);
193388
- if (!endpoint) {
193389
- notifyTerrainError(_IModelApp__WEBPACK_IMPORTED_MODULE_6__.IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.MissingCesiumToken`));
193606
+ const result = await resolveCesiumTerrainEndpoint(assetId, opts.iTwinId);
193607
+ if ("failure" in result) {
193608
+ notifyTerrainError(result.failure);
193390
193609
  return undefined;
193391
193610
  }
193611
+ const endpoint = result.endpoint;
193392
193612
  // Resource paths (layer.json, tiles) are appended directly to the base URL, so ensure it ends with a slash.
193393
193613
  const baseUrl = endpoint.url.endsWith("/") ? endpoint.url : `${endpoint.url}/`;
193394
193614
  let layers;
@@ -193398,11 +193618,10 @@ async function getCesiumTerrainProvider(opts) {
193398
193618
  layers = await (0,_request_Request__WEBPACK_IMPORTED_MODULE_4__.request)(layerUrl, "json", layerRequestOptions);
193399
193619
  }
193400
193620
  catch {
193401
- notifyTerrainError();
193402
- return undefined;
193621
+ layers = undefined;
193403
193622
  }
193404
- if (undefined === layers || undefined === layers.tiles || undefined === layers.version) {
193405
- notifyTerrainError();
193623
+ if (undefined === layers?.tiles || undefined === layers.version) {
193624
+ notifyTerrainError("unavailable");
193406
193625
  return undefined;
193407
193626
  }
193408
193627
  const tilingScheme = new _internal__WEBPACK_IMPORTED_MODULE_8__.GeographicTilingScheme();
@@ -193732,9 +193951,7 @@ class CesiumTerrainProvider extends _internal__WEBPACK_IMPORTED_MODULE_8__.Terra
193732
193951
  class CesiumIonClient {
193733
193952
  async getAssetEndpoint(assetId, _iTwinId) {
193734
193953
  const result = await getCesiumAccessTokenAndEndpointUrl(assetId);
193735
- if (!result.token || !result.url)
193736
- return undefined;
193737
- return { accessToken: result.token, url: result.url };
193954
+ return "endpoint" in result ? result.endpoint : undefined;
193738
193955
  }
193739
193956
  }
193740
193957
 
@@ -227153,6 +227370,7 @@ __webpack_require__.r(__webpack_exports__);
227153
227370
  /* harmony export */ EllipsoidPatch: () => (/* reexport safe */ _geometry3d_Ellipsoid__WEBPACK_IMPORTED_MODULE_5__.EllipsoidPatch),
227154
227371
  /* harmony export */ EllipticalArcApproximationOptions: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__.EllipticalArcApproximationOptions),
227155
227372
  /* harmony export */ EllipticalArcSampleMethod: () => (/* reexport safe */ _curve_Arc3d__WEBPACK_IMPORTED_MODULE_60__.EllipticalArcSampleMethod),
227373
+ /* harmony export */ ExteriorFractionSelector: () => (/* reexport safe */ _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.ExteriorFractionSelector),
227156
227374
  /* harmony export */ FacetFaceData: () => (/* reexport safe */ _polyface_FacetFaceData__WEBPACK_IMPORTED_MODULE_113__.FacetFaceData),
227157
227375
  /* harmony export */ FacetIntersectOptions: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_115__.FacetIntersectOptions),
227158
227376
  /* harmony export */ FacetLocationDetailPair: () => (/* reexport safe */ _polyface_FacetLocationDetail__WEBPACK_IMPORTED_MODULE_115__.FacetLocationDetailPair),
@@ -231434,6 +231652,7 @@ __webpack_require__.r(__webpack_exports__);
231434
231652
  /* harmony export */ CurveExtendOptions: () => (/* binding */ CurveExtendOptions)
231435
231653
  /* harmony export */ });
231436
231654
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
231655
+ /* harmony import */ var _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/AngleSweep */ "../../core/geometry/lib/esm/geometry3d/AngleSweep.js");
231437
231656
  /*---------------------------------------------------------------------------------------------
231438
231657
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
231439
231658
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -231442,6 +231661,7 @@ __webpack_require__.r(__webpack_exports__);
231442
231661
  * @module Curve
231443
231662
  */
231444
231663
 
231664
+
231445
231665
  /**
231446
231666
  * Enumeration of condition for extending a curve beyond start or end point.
231447
231667
  * * Not all CurvePrimitives support these modes.
@@ -231509,27 +231729,21 @@ class CurveExtendOptions {
231509
231729
  * the sweep extended per `extendParam`.
231510
231730
  */
231511
231731
  static resolveRadiansToValidSweepFraction(extendParam, radians, sweep) {
231512
- extendParam ??= false;
231513
- let fraction = sweep.radiansToSignedPeriodicFraction(radians);
231732
+ let fraction = sweep.radiansToSignedPeriodicFraction(radians, 0, _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.ExteriorFractionSelector.Closer);
231514
231733
  let isValid = true;
231515
- if (!sweep.isRadiansInSweep(radians)) {
231516
- const fractionPeriod = sweep.fractionPeriod();
231734
+ if (!_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isIn01(fraction)) {
231517
231735
  const mode0 = CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extendParam, 0);
231518
231736
  const mode1 = CurveExtendOptions.resolveVariantCurveExtendParameterToCurveExtendMode(extendParam, 1);
231519
- if (mode0 !== CurveExtendMode.None) {
231520
- if (mode1 === CurveExtendMode.None) { // only extend to negative
231521
- if (fraction > 1.0)
231522
- fraction -= fractionPeriod;
231523
- }
231524
- }
231525
- else if (mode1 !== CurveExtendMode.None) { // only extend to positive
231526
- if (fraction < 0.0)
231527
- fraction += fractionPeriod;
231528
- }
231529
- else { // no extension allowed
231737
+ if (mode0 === CurveExtendMode.None && mode1 === CurveExtendMode.None) {
231530
231738
  fraction = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.clamp(fraction, 0, 1);
231531
231739
  isValid = false;
231532
231740
  }
231741
+ else if (mode1 === CurveExtendMode.None && mode0 !== CurveExtendMode.None) {
231742
+ fraction = sweep.radiansToSignedPeriodicFraction(radians, 0, _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.ExteriorFractionSelector.Negative);
231743
+ }
231744
+ else if (mode0 === CurveExtendMode.None && mode1 !== CurveExtendMode.None) {
231745
+ fraction = sweep.radiansToSignedPeriodicFraction(radians, 0, _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_1__.ExteriorFractionSelector.Positive);
231746
+ }
231533
231747
  }
231534
231748
  return { fraction, isValid };
231535
231749
  }
@@ -232885,7 +233099,22 @@ class CurveLocationDetail {
232885
233099
  if (detailA) {
232886
233100
  if (!detailB)
232887
233101
  return detailA;
232888
- return detailA.a <= detailB.a ? detailA : detailB;
233102
+ // tiebreakers (exact comparison!)
233103
+ if (detailA.a === detailB.a) {
233104
+ // prefer interior to exterior
233105
+ const isInteriorA = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isIn01(detailA.fraction);
233106
+ const isInteriorB = _Geometry__WEBPACK_IMPORTED_MODULE_1__.Geometry.isIn01(detailB.fraction);
233107
+ if (isInteriorA && !isInteriorB)
233108
+ return detailA;
233109
+ if (!isInteriorA && isInteriorB)
233110
+ return detailB;
233111
+ if (!isInteriorA && !isInteriorB) { // prefer exterior closer to [0,1]
233112
+ const distFrom01A = detailA.fraction < 0 ? -detailA.fraction : detailA.fraction - 1;
233113
+ const distFrom01B = detailB.fraction < 0 ? -detailB.fraction : detailB.fraction - 1;
233114
+ return (distFrom01A <= distFrom01B) ? detailA : detailB;
233115
+ }
233116
+ }
233117
+ return detailA.a < detailB.a ? detailA : detailB;
232889
233118
  }
232890
233119
  return detailB;
232891
233120
  }
@@ -253976,7 +254205,8 @@ class Angle {
253976
254205
  "use strict";
253977
254206
  __webpack_require__.r(__webpack_exports__);
253978
254207
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
253979
- /* harmony export */ AngleSweep: () => (/* binding */ AngleSweep)
254208
+ /* harmony export */ AngleSweep: () => (/* binding */ AngleSweep),
254209
+ /* harmony export */ ExteriorFractionSelector: () => (/* binding */ ExteriorFractionSelector)
253980
254210
  /* harmony export */ });
253981
254211
  /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
253982
254212
  /* harmony import */ var _Angle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
@@ -253989,6 +254219,22 @@ __webpack_require__.r(__webpack_exports__);
253989
254219
  */
253990
254220
 
253991
254221
 
254222
+ /**
254223
+ * Selector for how to convert an angle outside of a sweep to an exterior fraction.
254224
+ * @see [[AngleSweep.radiansToSignedPeriodicFractionStartEnd]], [[AngleSweep.angleToSignedPeriodicFraction]], [[AngleSweep.radiansToSignedPeriodicFraction]]
254225
+ * @public
254226
+ */
254227
+ var ExteriorFractionSelector;
254228
+ (function (ExteriorFractionSelector) {
254229
+ /** Request [[Positive]] or [[Negative]] based on input sign. */
254230
+ ExteriorFractionSelector[ExteriorFractionSelector["SameSign"] = -1] = "SameSign";
254231
+ /** Request positive exterior fraction within one period of 1. */
254232
+ ExteriorFractionSelector[ExteriorFractionSelector["Positive"] = 0] = "Positive";
254233
+ /** Request negative exterior fraction within one period of 0. */
254234
+ ExteriorFractionSelector[ExteriorFractionSelector["Negative"] = 1] = "Negative";
254235
+ /** Request the period-shifted exterior fraction closest to [0,1]. */
254236
+ ExteriorFractionSelector[ExteriorFractionSelector["Closer"] = 2] = "Closer";
254237
+ })(ExteriorFractionSelector || (ExteriorFractionSelector = {}));
253992
254238
  /**
253993
254239
  * An `AngleSweep` is a pair of angles at start and end of an interval.
253994
254240
  *
@@ -254373,9 +254619,12 @@ class AngleSweep {
254373
254619
  * @param radians0 start angle of sweep (in radians)
254374
254620
  * @param radians1 end angle of sweep (in radians)
254375
254621
  * @param zeroSweepDefault return value when the sweep is empty (default 0)
254622
+ * @param selector how to handle an angle outside of the sweep. Default value is
254623
+ * [[ExteriorFractionSelector.SameSign]], to request a fraction with the same sign
254624
+ * as the unbounded fraction `(radians - radians0) / (radians1 - radians0)`.
254376
254625
  * @returns fraction, or `zeroSweepDefault` if the sweep is empty.
254377
254626
  */
254378
- static radiansToSignedPeriodicFractionStartEnd(radians, radians0, radians1, zeroSweepDefault = 0.0) {
254627
+ static radiansToSignedPeriodicFractionStartEnd(radians, radians0, radians1, zeroSweepDefault = 0.0, selector = ExteriorFractionSelector.SameSign) {
254379
254628
  const sweep = radians1 - radians0;
254380
254629
  if (_Angle__WEBPACK_IMPORTED_MODULE_1__.Angle.isAlmostEqualRadiansNoPeriodShift(0, sweep))
254381
254630
  return zeroSweepDefault;
@@ -254393,7 +254642,14 @@ class AngleSweep {
254393
254642
  return 1.0;
254394
254643
  }
254395
254644
  const fraction = (radians - radians0) / sweep;
254396
- return this.fractionToSignedPeriodicFractionStartEnd(fraction, radians0, radians1, fraction < 0);
254645
+ let toNegativeFraction;
254646
+ if (selector === ExteriorFractionSelector.Negative)
254647
+ toNegativeFraction = true;
254648
+ else if (selector === ExteriorFractionSelector.Positive)
254649
+ toNegativeFraction = false;
254650
+ else if (selector === ExteriorFractionSelector.SameSign)
254651
+ toNegativeFraction = fraction < 0;
254652
+ return this.fractionToSignedPeriodicFractionStartEnd(fraction, radians0, radians1, toNegativeFraction);
254397
254653
  }
254398
254654
  /**
254399
254655
  * Return the fractionalized position of the given angle (as radians) computed with consideration of
@@ -254406,10 +254662,13 @@ class AngleSweep {
254406
254662
  * * allows period shift
254407
254663
  * @param radians input angle (in radians)
254408
254664
  * @param zeroSweepDefault return value when this sweep is empty (default 0)
254665
+ * @param selector how to handle an angle outside of the sweep. Default value is
254666
+ * [[ExteriorFractionSelector.SameSign]], to request a fraction with the same sign
254667
+ * as the unbounded fraction `(radians - startRadians) / sweepRadians`.
254409
254668
  * @returns fraction, or `zeroSweepDefault` if this sweep is empty.
254410
254669
  */
254411
- radiansToSignedPeriodicFraction(radians, zeroSweepDefault = 0.0) {
254412
- return AngleSweep.radiansToSignedPeriodicFractionStartEnd(radians, this._radians0, this._radians1, zeroSweepDefault);
254670
+ radiansToSignedPeriodicFraction(radians, zeroSweepDefault = 0.0, selector = ExteriorFractionSelector.SameSign) {
254671
+ return AngleSweep.radiansToSignedPeriodicFractionStartEnd(radians, this._radians0, this._radians1, zeroSweepDefault, selector);
254413
254672
  }
254414
254673
  /**
254415
254674
  * Return the fractionalized position of the given angle (as Angle) computed with consideration of
@@ -254422,10 +254681,13 @@ class AngleSweep {
254422
254681
  * * allows period shift
254423
254682
  * @param theta input angle
254424
254683
  * @param zeroSweepDefault return value when this sweep is empty (default 0)
254684
+ * @param selector how to handle an angle outside of the sweep. Default value is
254685
+ * [[ExteriorFractionSelector.SameSign]], to request a fraction with the same sign
254686
+ * as the fraction returned by `angleToUnboundedFraction(theta)`.
254425
254687
  * @returns fraction, or `zeroSweepDefault` if this sweep is empty.
254426
254688
  */
254427
- angleToSignedPeriodicFraction(theta, zeroSweepDefault = 0.0) {
254428
- return this.radiansToSignedPeriodicFraction(theta.radians, zeroSweepDefault);
254689
+ angleToSignedPeriodicFraction(theta, zeroSweepDefault = 0.0, selector = ExteriorFractionSelector.SameSign) {
254690
+ return this.radiansToSignedPeriodicFraction(theta.radians, zeroSweepDefault, selector);
254429
254691
  }
254430
254692
  /**
254431
254693
  * Return the fractionalized position of the given radian angle with respect to the sweep.
@@ -337119,11 +337381,18 @@ class Parser {
337119
337381
  }
337120
337382
  return undefined;
337121
337383
  }
337384
+ /** Get the Unit Conversion for a known unit. Matches by unit name first because labels can differ between units providers
337385
+ * (e.g. an unlabeled schema unit may have an empty label in one provider and a name-derived label in another). Falls back to label lookup.
337386
+ */
337387
+ static tryFindUnitConversionForUnit(unit, unitsConversions) {
337388
+ const byName = unitsConversions.find((conversion) => conversion.name === unit.name);
337389
+ return byName ? byName.conversion : Parser.tryFindUnitConversion(unit.label, unitsConversions, unit);
337390
+ }
337122
337391
  /**
337123
337392
  * Get what the unit conversion is for a unitless value.
337124
337393
  */
337125
337394
  static getDefaultUnitConversion(tokens, unitsConversions, defaultUnit) {
337126
- let unitConversion = defaultUnit ? Parser.tryFindUnitConversion(defaultUnit.label, unitsConversions, defaultUnit) : undefined;
337395
+ let unitConversion = defaultUnit ? Parser.tryFindUnitConversionForUnit(defaultUnit, unitsConversions) : undefined;
337127
337396
  if (!unitConversion) {
337128
337397
  // No default unit conversion, take the first valid unit.
337129
337398
  const uniqueUnitLabels = [...new Set(tokens.filter((token) => token.isString).map((token) => token.value))];
@@ -337243,7 +337512,7 @@ class Parser {
337243
337512
  if (compositeUnitIndex > 0 && format.units && format.units.length > compositeUnitIndex) {
337244
337513
  // if this is not the first token, and we have a composite spec, look up the unit from the current index
337245
337514
  const presUnitAtIndex = format.units[compositeUnitIndex][0];
337246
- conversion = Parser.tryFindUnitConversion(presUnitAtIndex.label, unitsConversions, presUnitAtIndex);
337515
+ conversion = Parser.tryFindUnitConversionForUnit(presUnitAtIndex, unitsConversions);
337247
337516
  }
337248
337517
  else if (defaultUnitConversion) {
337249
337518
  conversion = defaultUnitConversion;
@@ -337536,7 +337805,7 @@ class Parser {
337536
337805
  }
337537
337806
  // Original flow for 1-unit composite - use Quantity.convertTo for proper unit conversion
337538
337807
  const defaultUnit = spec.format.units && spec.format.units.length > 0 ? spec.format.units[0][0] : undefined;
337539
- const unitConversion = defaultUnit ? Parser.tryFindUnitConversion(defaultUnit.label, spec.unitConversions, defaultUnit) : undefined;
337808
+ const unitConversion = defaultUnit ? Parser.tryFindUnitConversionForUnit(defaultUnit, spec.unitConversions) : undefined;
337540
337809
  if (!unitConversion) {
337541
337810
  throw new _Exception__WEBPACK_IMPORTED_MODULE_2__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_2__.QuantityStatus.MissingRequiredProperty, `Missing input unit or unit conversion for interpreting ${spec.format.name}.`);
337542
337811
  }
@@ -338573,7 +338842,6 @@ function isCompatible(fromUnit, toUnit) {
338573
338842
  /** Returns the package's default built-in persistence unit for a supported bundled built-in phenomenon.
338574
338843
  *
338575
338844
  * This helper is intentionally limited to the built-in canonical unit set shipped with `@itwin/core-quantity`.
338576
- * `Phenomena.LENGTH_RATIO` is intentionally excluded because the bundled built-in unit set does not yet provide an agreed default for that phenomenon.
338577
338845
  * For schema-defined, custom, or iModel-specific persistence units, use a `UnitsProvider`-based workflow instead.
338578
338846
  *
338579
338847
  * @beta
@@ -338997,6 +339265,11 @@ const Units = {
338997
339265
  US_SURVEY_YRD: "Units.US_SURVEY_YRD",
338998
339266
  YRD: "Units.YRD",
338999
339267
  },
339268
+ LENGTH_RATIO: {
339269
+ DECIMAL_LENGTH_RATIO: "Units.DECIMAL_LENGTH_RATIO",
339270
+ IN_PER_FT_LENGTH_RATIO: "Units.IN_PER_FT_LENGTH_RATIO",
339271
+ M_PER_M_LENGTH_RATIO: "Units.M_PER_M_LENGTH_RATIO",
339272
+ },
339000
339273
  LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION: {
339001
339274
  STRAIN_PER_CELSIUS: "Units.STRAIN_PER_CELSIUS",
339002
339275
  STRAIN_PER_FAHRENHEIT: "Units.STRAIN_PER_FAHRENHEIT",
@@ -339783,6 +340056,7 @@ const basicUnitConversionData = {
339783
340056
  "Units.CUB_YRD": ["Units.VOLUME", 1.30795061931439, 0],
339784
340057
  "Units.DAY": ["Units.TIME", 0.0000115740740740741, 0],
339785
340058
  "Units.DECAN": ["Units.FORCE", 0.1, 0],
340059
+ "Units.DECIMAL_LENGTH_RATIO": ["Units.LENGTH_RATIO", 1, 0],
339786
340060
  "Units.DECIMAL_PERCENT": ["Units.PERCENTAGE", 0.01, 0],
339787
340061
  "Units.DEG_PER_HR": ["Units.ANGULAR_VELOCITY", 206264.806247096, 0],
339788
340062
  "Units.DEG_PER_MIN": ["Units.ANGULAR_VELOCITY", 3437.74677078494, 0],
@@ -339866,6 +340140,7 @@ const basicUnitConversionData = {
339866
340140
  "Units.IN_PER_DAY": ["Units.VELOCITY", 3401574.80314961, 0],
339867
340141
  "Units.IN_PER_DEGREE": ["Units.THREAD_PITCH", 0.687137500785169, 0],
339868
340142
  "Units.IN_PER_FT": ["Units.SLOPE", 12, 0],
340143
+ "Units.IN_PER_FT_LENGTH_RATIO": ["Units.LENGTH_RATIO", 12, 0],
339869
340144
  "Units.IN_PER_HR": ["Units.VELOCITY", 141732.283464567, 0],
339870
340145
  "Units.IN_PER_MIN": ["Units.VELOCITY", 2362.20472440945, 0],
339871
340146
  "Units.IN_PER_SEC": ["Units.VELOCITY", 39.3700787401575, 0],
@@ -340000,6 +340275,7 @@ const basicUnitConversionData = {
340000
340275
  "Units.M_PER_KM": ["Units.SLOPE", 1000, 0],
340001
340276
  "Units.M_PER_KN": ["Units.FORCE_DISPLAY_SCALE", 1000, 0],
340002
340277
  "Units.M_PER_M": ["Units.SLOPE", 1, 0],
340278
+ "Units.M_PER_M_LENGTH_RATIO": ["Units.LENGTH_RATIO", 1, 0],
340003
340279
  "Units.M_PER_MIN": ["Units.VELOCITY", 60, 0],
340004
340280
  "Units.M_PER_N": ["Units.FORCE_DISPLAY_SCALE", 1, 0],
340005
340281
  "Units.M_PER_RAD": ["Units.THREAD_PITCH", 1, 0],
@@ -340309,6 +340585,7 @@ const defaultPersistenceUnits = {
340309
340585
  [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.ILLUMINANCE]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.ILLUMINANCE.LUX,
340310
340586
  [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.KINEMATIC_VISCOSITY]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.KINEMATIC_VISCOSITY.SQ_M_PER_SEC,
340311
340587
  [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LENGTH]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LENGTH.M,
340588
+ [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LENGTH_RATIO]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LENGTH_RATIO.M_PER_M_LENGTH_RATIO,
340312
340589
  [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION.STRAIN_PER_KELVIN,
340313
340590
  [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LINEAR_DENSITY]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LINEAR_DENSITY.KG_PER_M,
340314
340591
  [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.LINEAR_LOAD]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.LINEAR_LOAD.N_PER_M,
@@ -340359,7 +340636,6 @@ const defaultPersistenceUnits = {
340359
340636
  [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.VOLUME_RATIO]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.VOLUME_RATIO.CUB_M_PER_CUB_M,
340360
340637
  [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.VOLUMETRIC_FLOW]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.VOLUMETRIC_FLOW.CUB_M_PER_SEC,
340361
340638
  [_generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Phenomena.WORK]: _generated_Units_generated__WEBPACK_IMPORTED_MODULE_0__.Units.WORK.J,
340362
- // Phenomena.LENGTH_RATIO is intentionally omitted because the bundled built-in unit set does not yet provide an agreed default for that phenomenon.
340363
340639
  };
340364
340640
 
340365
340641
 
@@ -343905,7 +344181,7 @@ class TestContext {
343905
344181
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
343906
344182
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
343907
344183
  await core_frontend_1.NoRenderApp.startup({
343908
- applicationVersion: "5.14.3",
344184
+ applicationVersion: "5.15.0-dev.10",
343909
344185
  applicationId: this.settings.gprid,
343910
344186
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.serviceAuthToken),
343911
344187
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -348386,6 +348662,32 @@ class KoqPropertyValueFormatter {
348386
348662
  }
348387
348663
  return formatterSpec.applyFormatting(value);
348388
348664
  }
348665
+ /**
348666
+ * Creates a formatter that reuses formatter specs for repeated formatting options.
348667
+ * Each call creates an independent cache that lasts as long as the returned formatter.
348668
+ * Cached specs and missing-format results are not invalidated by changes to formats,
348669
+ * default formats, or schemas. Create a new formatter to pick up those changes.
348670
+ * Failed spec lookups are not cached and may be retried by subsequent calls.
348671
+ * @returns A formatter with its own cache, suitable for a single content-formatting operation.
348672
+ */
348673
+ createCachedFormatter() {
348674
+ const specs = new Map();
348675
+ return {
348676
+ format: async (value, options) => {
348677
+ const key = JSON.stringify([options.koqName, options.unitSystem, Object.entries(options.formatOverride ?? {})]);
348678
+ let specPromise = specs.get(key);
348679
+ if (!specPromise) {
348680
+ specPromise = this.getFormatterSpec(options).catch((error) => {
348681
+ specs.delete(key);
348682
+ throw error;
348683
+ });
348684
+ specs.set(key, specPromise);
348685
+ }
348686
+ const spec = await specPromise;
348687
+ return spec?.applyFormatting(value);
348688
+ },
348689
+ };
348690
+ }
348389
348691
  async getFormatterSpec(options) {
348390
348692
  const formattingProps = await this.#getFormattingProps(options);
348391
348693
  if (!formattingProps) {
@@ -348559,12 +348861,14 @@ var LabelDefinition;
348559
348861
  */
348560
348862
  Object.defineProperty(exports, "__esModule", ({ value: true }));
348561
348863
  exports.LocalizationHelper = void 0;
348562
- const Content_js_1 = __webpack_require__(/*! ./content/Content.js */ "../../presentation/common/lib/cjs/presentation-common/content/Content.js");
348563
- const Descriptor_js_1 = __webpack_require__(/*! ./content/Descriptor.js */ "../../presentation/common/lib/cjs/presentation-common/content/Descriptor.js");
348564
348864
  const Value_js_1 = __webpack_require__(/*! ./content/Value.js */ "../../presentation/common/lib/cjs/presentation-common/content/Value.js");
348565
348865
  const LabelDefinition_js_1 = __webpack_require__(/*! ./LabelDefinition.js */ "../../presentation/common/lib/cjs/presentation-common/LabelDefinition.js");
348566
348866
  const KEY_PATTERN = /@[\w\d\-_]+:[\w\d\-\._]+?@/g;
348567
- /** @internal */
348867
+ /**
348868
+ * Localizes presentation data structures **in place**. Callers must pass a mutable graph owned by the current
348869
+ * operation and must not reuse it as untranslated data for another locale.
348870
+ * @internal
348871
+ */
348568
348872
  class LocalizationHelper {
348569
348873
  _getLocalizedString;
348570
348874
  constructor(props) {
@@ -348574,126 +348878,122 @@ class LocalizationHelper {
348574
348878
  return text.replace(KEY_PATTERN, (key) => this._getLocalizedString(key.replace(/^@|@$/g, "")));
348575
348879
  }
348576
348880
  /* eslint-disable @typescript-eslint/no-deprecated */
348577
- getLocalizedNodes(nodes) {
348578
- return nodes.map((n) => this.getLocalizedNode(n));
348881
+ localizeNodes(nodes) {
348882
+ nodes.forEach((n) => this.localizeNode(n));
348883
+ return nodes;
348579
348884
  }
348580
- getLocalizedNode(node) {
348581
- return {
348582
- ...node,
348583
- label: this.getLocalizedLabelDefinition(node.label),
348584
- ...(node.description ? { description: this.getLocalizedString(node.description) } : undefined),
348585
- };
348885
+ localizeNode(node) {
348886
+ this.localizeLabelDefinition(node.label);
348887
+ if (node.description) {
348888
+ node.description = this.getLocalizedString(node.description);
348889
+ }
348890
+ return node;
348586
348891
  }
348587
- getLocalizedNodePathElement(npe) {
348588
- return {
348589
- ...npe,
348590
- node: this.getLocalizedNode(npe.node),
348591
- children: npe.children.map((c) => this.getLocalizedNodePathElement(c)),
348592
- };
348892
+ localizeNodePathElement(npe) {
348893
+ this.localizeNode(npe.node);
348894
+ npe.children.forEach((c) => this.localizeNodePathElement(c));
348895
+ return npe;
348593
348896
  }
348594
348897
  /* eslint-enable @typescript-eslint/no-deprecated */
348595
- getLocalizedDisplayValueGroup(group) {
348596
- return {
348597
- ...group,
348598
- displayValue: this.getLocalizedDisplayValue(group.displayValue),
348599
- };
348898
+ localizeDisplayValueGroup(group) {
348899
+ group.displayValue = this.localizeDisplayValue(group.displayValue);
348900
+ return group;
348600
348901
  }
348601
- getLocalizedLabelDefinition(labelDefinition) {
348602
- const getLocalizedComposite = (compositeValue) => ({
348603
- ...compositeValue,
348604
- values: compositeValue.values.map((value) => this.getLocalizedLabelDefinition(value)),
348605
- });
348902
+ localizeLabelDefinition(labelDefinition) {
348606
348903
  if (labelDefinition.typeName === LabelDefinition_js_1.COMPOSITE_LABEL_DEFINITION_TYPENAME) {
348607
- return {
348608
- ...labelDefinition,
348609
- rawValue: getLocalizedComposite(labelDefinition.rawValue),
348610
- };
348904
+ labelDefinition.rawValue.values.forEach((value) => this.localizeLabelDefinition(value));
348611
348905
  }
348612
- if (labelDefinition.typeName === "string") {
348613
- return {
348614
- ...labelDefinition,
348615
- rawValue: this.getLocalizedString(labelDefinition.rawValue),
348616
- displayValue: this.getLocalizedString(labelDefinition.displayValue),
348617
- };
348906
+ else if (labelDefinition.typeName === "string") {
348907
+ labelDefinition.rawValue = this.getLocalizedString(labelDefinition.rawValue);
348908
+ labelDefinition.displayValue = this.getLocalizedString(labelDefinition.displayValue);
348618
348909
  }
348619
348910
  return labelDefinition;
348620
348911
  }
348621
- getLocalizedLabelDefinitions(labelDefinitions) {
348622
- return labelDefinitions.map((labelDefinition) => this.getLocalizedLabelDefinition(labelDefinition));
348912
+ localizeLabelDefinitions(labelDefinitions) {
348913
+ labelDefinitions.forEach((labelDefinition) => this.localizeLabelDefinition(labelDefinition));
348914
+ return labelDefinitions;
348623
348915
  }
348624
- getLocalizedContentDescriptor(descriptor) {
348625
- const clone = new Descriptor_js_1.Descriptor(descriptor);
348626
- clone.fields.forEach((field) => this.getLocalizedContentField(field));
348627
- clone.categories.forEach((category) => this.getLocalizedCategoryDescription(category));
348628
- return clone;
348916
+ localizeContentDescriptor(descriptor) {
348917
+ descriptor.fields.forEach((field) => this.localizeContentField(field));
348918
+ descriptor.categories.forEach((category) => this.localizeCategoryDescription(category));
348919
+ return descriptor;
348629
348920
  }
348630
- getLocalizedContentItems(items) {
348631
- return items.map((item) => this.getLocalizedContentItem(item));
348921
+ localizeContentItems(items) {
348922
+ items.forEach((item) => this.localizeContentItem(item));
348923
+ return items;
348632
348924
  }
348633
- getLocalizedContent(content) {
348634
- return new Content_js_1.Content(this.getLocalizedContentDescriptor(content.descriptor), this.getLocalizedContentItems(content.contentSet));
348925
+ localizeContent(content) {
348926
+ this.localizeContentDescriptor(content.descriptor);
348927
+ this.localizeContentItems(content.contentSet);
348928
+ return content;
348635
348929
  }
348636
- getLocalizedElementProperties(elem) {
348637
- return {
348638
- ...elem,
348639
- label: this.getLocalizedString(elem.label),
348640
- };
348930
+ localizeElementProperties(elem) {
348931
+ elem.label = this.getLocalizedString(elem.label);
348932
+ return elem;
348641
348933
  }
348642
- // warning: this function mutates the item
348643
- getLocalizedContentItem(item) {
348644
- item.label = this.getLocalizedLabelDefinition(item.label);
348645
- item.values = Object.entries(item.values).reduce((o, [k, v]) => ({ ...o, [k]: this.getLocalizedRawValue(v) }), {});
348646
- item.displayValues = Object.entries(item.displayValues).reduce((o, [k, v]) => ({ ...o, [k]: this.getLocalizedDisplayValue(v) }), {});
348934
+ localizeContentItem(item) {
348935
+ this.localizeLabelDefinition(item.label);
348936
+ this.localizeRawValuesDictionary(item.values);
348937
+ this.localizeDisplayValuesDictionary(item.displayValues);
348647
348938
  return item;
348648
348939
  }
348649
- getLocalizedRawValue(value) {
348940
+ localizeRawValuesDictionary(values) {
348941
+ for (const key of Object.keys(values)) {
348942
+ values[key] = this.localizeRawValue(values[key]);
348943
+ }
348944
+ }
348945
+ localizeDisplayValuesDictionary(values) {
348946
+ for (const key of Object.keys(values)) {
348947
+ values[key] = this.localizeDisplayValue(values[key]);
348948
+ }
348949
+ }
348950
+ localizeRawValue(value) {
348650
348951
  if (typeof value === "string") {
348651
348952
  return this.getLocalizedString(value);
348652
348953
  }
348653
348954
  if (Value_js_1.Value.isNavigationValue(value)) {
348654
- return {
348655
- ...value,
348656
- label: this.getLocalizedLabelDefinition(value.label),
348657
- };
348955
+ this.localizeLabelDefinition(value.label);
348956
+ return value;
348658
348957
  }
348659
348958
  if (Value_js_1.Value.isNestedContent(value)) {
348660
- return value.map((item) => ({
348661
- ...item,
348662
- values: Object.entries(item.values).reduce((o, [k, v]) => ({ ...o, [k]: this.getLocalizedRawValue(v) }), {}),
348663
- displayValues: Object.entries(item.displayValues).reduce((o, [k, v]) => ({ ...o, [k]: this.getLocalizedDisplayValue(v) }), {}),
348664
- }));
348959
+ value.forEach((item) => {
348960
+ this.localizeRawValuesDictionary(item.values);
348961
+ this.localizeDisplayValuesDictionary(item.displayValues);
348962
+ });
348963
+ return value;
348665
348964
  }
348666
348965
  if (Value_js_1.Value.isArray(value)) {
348667
- return value.map((v) => this.getLocalizedRawValue(v));
348966
+ for (let i = 0; i < value.length; ++i) {
348967
+ value[i] = this.localizeRawValue(value[i]);
348968
+ }
348969
+ return value;
348668
348970
  }
348669
348971
  if (Value_js_1.Value.isMap(value)) {
348670
- return Object.entries(value).reduce((o, [k, v]) => ({ ...o, [k]: this.getLocalizedRawValue(v) }), {});
348972
+ this.localizeRawValuesDictionary(value);
348671
348973
  }
348672
348974
  return value;
348673
348975
  }
348674
- // warning: this function mutates the field
348675
- getLocalizedContentField(field) {
348976
+ localizeContentField(field) {
348676
348977
  field.label = this.getLocalizedString(field.label);
348677
348978
  if (field.isPropertiesField()) {
348678
348979
  if (field.isStructPropertiesField()) {
348679
- field.memberFields = field.memberFields.map((m) => this.getLocalizedContentField(m));
348980
+ field.memberFields.forEach((m) => this.localizeContentField(m));
348680
348981
  }
348681
348982
  else if (field.isArrayPropertiesField()) {
348682
- field.itemsField = this.getLocalizedContentField(field.itemsField);
348983
+ this.localizeContentField(field.itemsField);
348683
348984
  }
348684
348985
  }
348685
348986
  else if (field.isNestedContentField()) {
348686
- field.nestedFields = field.nestedFields.map((m) => this.getLocalizedContentField(m));
348987
+ field.nestedFields.forEach((m) => this.localizeContentField(m));
348687
348988
  }
348688
348989
  return field;
348689
348990
  }
348690
- // warning: this function mutates the category
348691
- getLocalizedCategoryDescription(category) {
348991
+ localizeCategoryDescription(category) {
348692
348992
  category.label = this.getLocalizedString(category.label);
348693
348993
  category.description = this.getLocalizedString(category.description);
348694
348994
  return category;
348695
348995
  }
348696
- getLocalizedDisplayValue(value) {
348996
+ localizeDisplayValue(value) {
348697
348997
  if (typeof value === "undefined") {
348698
348998
  return undefined;
348699
348999
  }
@@ -348701,9 +349001,13 @@ class LocalizationHelper {
348701
349001
  return this.getLocalizedString(value);
348702
349002
  }
348703
349003
  if (Value_js_1.DisplayValue.isArray(value)) {
348704
- return value.map((v) => this.getLocalizedDisplayValue(v));
349004
+ for (let i = 0; i < value.length; ++i) {
349005
+ value[i] = this.localizeDisplayValue(value[i]);
349006
+ }
349007
+ return value;
348705
349008
  }
348706
- return Object.entries(value).reduce((o, [k, v]) => ({ ...o, [k]: this.getLocalizedDisplayValue(v) }), {});
349009
+ this.localizeDisplayValuesDictionary(value);
349010
+ return value;
348707
349011
  }
348708
349012
  }
348709
349013
  exports.LocalizationHelper = LocalizationHelper;
@@ -353956,7 +354260,7 @@ class PresentationManager {
353956
354260
  const result = await this._requestsHandler.getPagedNodes({ ...rpcOptions, paging });
353957
354261
  return {
353958
354262
  total: result.total,
353959
- items: this._localizationHelper.getLocalizedNodes(result.items),
354263
+ items: this._localizationHelper.localizeNodes(result.items),
353960
354264
  };
353961
354265
  },
353962
354266
  });
@@ -354005,7 +354309,7 @@ class PresentationManager {
354005
354309
  const rpcOptions = this.toRpcTokenOptions({ ...options });
354006
354310
  const result = await this._requestsHandler.getNodesDescriptor(rpcOptions);
354007
354311
  const descriptor = presentation_common_1.Descriptor.fromJSON(result);
354008
- return descriptor ? this._localizationHelper.getLocalizedContentDescriptor(descriptor) : undefined;
354312
+ return descriptor ? this._localizationHelper.localizeContentDescriptor(descriptor) : undefined;
354009
354313
  }
354010
354314
  finally {
354011
354315
  await (0, IModelConnectionInitialization_js_1.ensureIModelInitialized)(requestOptions.imodel);
@@ -354021,7 +354325,7 @@ class PresentationManager {
354021
354325
  const options = await this.addRulesetAndVariablesToOptions(requestOptions);
354022
354326
  const rpcOptions = this.toRpcTokenOptions({ ...options });
354023
354327
  const result = await this._requestsHandler.getNodePaths(rpcOptions);
354024
- return result.map((npe) => this._localizationHelper.getLocalizedNodePathElement(npe));
354328
+ return result.map((npe) => this._localizationHelper.localizeNodePathElement(npe));
354025
354329
  }
354026
354330
  /**
354027
354331
  * Retrieves paths from root nodes to nodes containing filter text in their label.
@@ -354032,7 +354336,7 @@ class PresentationManager {
354032
354336
  (0, IModelConnectionInitialization_js_1.startIModelInitialization)(requestOptions.imodel);
354033
354337
  const options = await this.addRulesetAndVariablesToOptions(requestOptions);
354034
354338
  const result = await this._requestsHandler.getFilteredNodePaths(this.toRpcTokenOptions(options));
354035
- return result.map((npe) => this._localizationHelper.getLocalizedNodePathElement(npe));
354339
+ return result.map((npe) => this._localizationHelper.localizeNodePathElement(npe));
354036
354340
  }
354037
354341
  /* eslint-enable @typescript-eslint/no-deprecated */
354038
354342
  /**
@@ -354057,7 +354361,7 @@ class PresentationManager {
354057
354361
  });
354058
354362
  const result = await this._requestsHandler.getContentDescriptor(rpcOptions);
354059
354363
  const descriptor = presentation_common_1.Descriptor.fromJSON(result);
354060
- return descriptor ? this._localizationHelper.getLocalizedContentDescriptor(descriptor) : undefined;
354364
+ return descriptor ? this._localizationHelper.localizeContentDescriptor(descriptor) : undefined;
354061
354365
  }
354062
354366
  finally {
354063
354367
  await (0, IModelConnectionInitialization_js_1.ensureIModelInitialized)(requestOptions.imodel);
@@ -354093,7 +354397,7 @@ class PresentationManager {
354093
354397
  formatsProvider: core_frontend_1.IModelApp.formatsProvider,
354094
354398
  });
354095
354399
  koqPropertyFormatter.defaultFormats = this._defaultFormats;
354096
- contentFormatter = (0, presentation_common_1.createContentFormatter)({ propertyValueFormatter: koqPropertyFormatter, unitSystem });
354400
+ contentFormatter = (0, presentation_common_1.createContentFormatter)({ propertyValueFormatter: koqPropertyFormatter.createCachedFormatter(), unitSystem });
354097
354401
  }
354098
354402
  let descriptor = requestOptions.descriptor instanceof presentation_common_1.Descriptor ? requestOptions.descriptor : undefined;
354099
354403
  let firstPage;
@@ -354102,14 +354406,13 @@ class PresentationManager {
354102
354406
  if (!firstPageResponse?.descriptor || !firstPageResponse.contentSet) {
354103
354407
  return undefined;
354104
354408
  }
354105
- descriptor = presentation_common_1.Descriptor.fromJSON(firstPageResponse?.descriptor);
354409
+ descriptor = this._localizationHelper.localizeContentDescriptor(presentation_common_1.Descriptor.fromJSON(firstPageResponse.descriptor));
354106
354410
  firstPage = firstPageResponse?.contentSet;
354107
354411
  }
354108
354412
  /* c8 ignore next 3 */
354109
354413
  if (!descriptor) {
354110
354414
  return undefined;
354111
354415
  }
354112
- descriptor = this._localizationHelper.getLocalizedContentDescriptor(descriptor);
354113
354416
  const getPage = async (paging, requestIndex) => {
354114
354417
  let contentSet = requestIndex === 0 ? firstPage : undefined;
354115
354418
  contentSet ??= await this._requestsHandler.getPagedContentSet({ ...rpcOptions, paging });
@@ -354117,7 +354420,7 @@ class PresentationManager {
354117
354420
  if (contentFormatter) {
354118
354421
  items = await contentFormatter.formatContentItems(items, descriptor);
354119
354422
  }
354120
- items = this._localizationHelper.getLocalizedContentItems(items);
354423
+ items = this._localizationHelper.localizeContentItems(items);
354121
354424
  return {
354122
354425
  total: contentSet.total,
354123
354426
  items,
@@ -354181,7 +354484,7 @@ class PresentationManager {
354181
354484
  const response = await this._requestsHandler.getPagedDistinctValues({ ...rpcOptions, paging });
354182
354485
  return {
354183
354486
  total: response.total,
354184
- items: response.items.map((x) => this._localizationHelper.getLocalizedDisplayValueGroup(x)),
354487
+ items: response.items.map((x) => this._localizationHelper.localizeDisplayValueGroup(x)),
354185
354488
  };
354186
354489
  },
354187
354490
  });
@@ -354259,7 +354562,7 @@ class PresentationManager {
354259
354562
  (0, IModelConnectionInitialization_js_1.startIModelInitialization)(requestOptions.imodel);
354260
354563
  const rpcOptions = this.toRpcTokenOptions({ ...requestOptions });
354261
354564
  const result = await this._requestsHandler.getDisplayLabelDefinition(rpcOptions);
354262
- return this._localizationHelper.getLocalizedLabelDefinition(result);
354565
+ return this._localizationHelper.localizeLabelDefinition(result);
354263
354566
  }
354264
354567
  /** Retrieves display label definition of specific items. */
354265
354568
  async getDisplayLabelDefinitionsIterator(requestOptions) {
@@ -354270,7 +354573,7 @@ class PresentationManager {
354270
354573
  getBatch: async (page) => {
354271
354574
  const partialKeys = !page.start ? rpcOptions.keys : rpcOptions.keys.slice(page.start);
354272
354575
  const result = await this._requestsHandler.getPagedDisplayLabelDefinitions({ ...rpcOptions, keys: partialKeys });
354273
- result.items = this._localizationHelper.getLocalizedLabelDefinitions(result.items);
354576
+ result.items = this._localizationHelper.localizeLabelDefinitions(result.items);
354274
354577
  return result;
354275
354578
  },
354276
354579
  });
@@ -370647,7 +370950,7 @@ class WMS {
370647
370950
  (module) {
370648
370951
 
370649
370952
  "use strict";
370650
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.14.3","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s build:workers && npm run -s copy:draco","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run build:test-worker && vitest --run","cover":"npm run build:test-worker && vitest --run","build:test-worker":"vite build --config ./src/test/worker/vite.config.mts 1>&2","build:workers":"rimraf lib/workers/webpack && vite build --config ./src/workers/ImdlParser/vite.config.mts 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.11","@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/node":"~20.17.0","@types/sinon":"^17.0.2","@vitest/browser-playwright":"^4.1.10","@vitest/coverage-v8":"^4.1.10","cpx2":"^8.0.0","eslint":"^9.31.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","typescript":"~5.6.2","vite":"^6.4.3","vitest":"^4.1.10"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^4.4.5","@loaders.gl/draco":"^4.4.5","fuse.js":"^3.3.0","wms-capabilities":"0.6.0"}}');
370953
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.15.0-dev.10","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s build:workers && npm run -s copy:draco","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf -g lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:draco":"cpx \\"./node_modules/@loaders.gl/draco/dist/libs/*\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts && npm run -s extract","extract":"betools extract --fileExt=ts --extractFrom=./src/test/example-code --recursive --out=../../generated-docs/extract","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","lint-deprecation":"eslint --fix -f visualstudio --no-inline-config -c ../../common/config/eslint/eslint.config.deprecation-policy.js \\"./src/**/*.ts\\"","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run build:test-worker && vitest --run","cover":"npm run build:test-worker && vitest --run","build:test-worker":"vite build --config ./src/test/worker/vite.config.mts 1>&2","build:workers":"rimraf lib/workers/webpack && vite build --config ./src/workers/ImdlParser/vite.config.mts 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@bentley/aec-units-schema":"^1.0.3","@bentley/formats-schema":"^1.0.0","@bentley/units-schema":"^1.0.12","@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/ecschema-metadata":"workspace:*","@itwin/ecschema-rpcinterface-common":"workspace:*","@itwin/object-storage-core":"^3.0.4","@itwin/eslint-plugin":"^6.0.0","@types/node":"~20.17.0","@types/sinon":"^17.0.2","@vitest/browser-playwright":"^4.1.10","@vitest/coverage-v8":"^4.1.10","cpx2":"^8.0.0","eslint":"^9.31.0","playwright":"~1.56.1","rimraf":"^6.0.1","sinon":"^17.0.2","typescript":"~5.6.2","vite":"^6.4.3","vitest":"^4.1.10"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^4.4.5","@loaders.gl/draco":"^4.4.5","fuse.js":"^3.3.0","wms-capabilities":"0.6.0"}}');
370651
370954
 
370652
370955
  /***/ },
370653
370956
 
@@ -370658,7 +370961,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","versio
370658
370961
  (module) {
370659
370962
 
370660
370963
  "use strict";
370661
- module.exports = /*#__PURE__*/JSON.parse('{"version":"01.00.00","sourceEcSchemaVersion":"01.00.11","name":"Units","alias":"u","label":"Units","description":"Standard Set of Unit definitions for the system","items":{"SI":{"schemaItemType":"UnitSystem"},"CGS":{"schemaItemType":"UnitSystem"},"METRIC":{"schemaItemType":"UnitSystem"},"IMPERIAL":{"schemaItemType":"UnitSystem"},"MARITIME":{"schemaItemType":"UnitSystem"},"USSURVEY":{"schemaItemType":"UnitSystem"},"INDUSTRIAL":{"schemaItemType":"UnitSystem"},"INTERNATIONAL":{"schemaItemType":"UnitSystem"},"USCUSTOM":{"schemaItemType":"UnitSystem"},"STATISTICS":{"schemaItemType":"UnitSystem"},"FINANCE":{"schemaItemType":"UnitSystem"},"CONSTANT":{"schemaItemType":"UnitSystem"},"APPARENT_POWER":{"schemaItemType":"Phenomenon","label":"Apparent Power","definition":"ELECTRIC_POTENTIAL*CURRENT"},"AREA":{"schemaItemType":"Phenomenon","label":"Area","definition":"LENGTH(2)"},"VOLUME":{"schemaItemType":"Phenomenon","label":"Volume","definition":"LENGTH(3)"},"VELOCITY":{"schemaItemType":"Phenomenon","label":"Velocity","definition":"LENGTH*TIME(-1)"},"ANGULAR_VELOCITY":{"schemaItemType":"Phenomenon","label":"Angular Velocity","definition":"ANGLE*TIME(-1)"},"ACCELERATION":{"schemaItemType":"Phenomenon","label":"Acceleration","definition":"LENGTH*TIME(-2)"},"FORCE":{"schemaItemType":"Phenomenon","label":"Force","definition":"MASS*ACCELERATION"},"PRESSURE":{"schemaItemType":"Phenomenon","label":"Pressure","definition":"FORCE*AREA(-1)"},"FORCE_DENSITY":{"schemaItemType":"Phenomenon","label":"Force Density","definition":"FORCE*VOLUME(-1)"},"PRESSURE_GRADIENT":{"schemaItemType":"Phenomenon","label":"Pressure Gradient","definition":"PRESSURE*LENGTH(-1)"},"TORQUE":{"schemaItemType":"Phenomenon","label":"Torque","definition":"FORCE*LENGTH*ANGLE(-1)"},"LINEAR_TORQUE":{"schemaItemType":"Phenomenon","label":"Linear Torque","definition":"TORQUE*LENGTH(-1)"},"AREA_TORQUE":{"schemaItemType":"Phenomenon","label":"Area Torque","definition":"TORQUE*AREA(-1)"},"AREA_MOMENT_INERTIA":{"schemaItemType":"Phenomenon","label":"Area Moment Inertia","definition":"LENGTH(4)"},"MASS_RATIO":{"schemaItemType":"Phenomenon","label":"Mass Ratio","definition":"MASS*MASS(-1)"},"DENSITY":{"schemaItemType":"Phenomenon","label":"Density","definition":"MASS*VOLUME(-1)"},"SPECIFIC_VOLUME":{"schemaItemType":"Phenomenon","label":"Specific Volume","definition":"VOLUME*MASS(-1)"},"LINEAR_DENSITY":{"schemaItemType":"Phenomenon","label":"Linear Density","definition":"MASS*LENGTH(-1)"},"SURFACE_DENSITY":{"schemaItemType":"Phenomenon","label":"Surface Density","definition":"MASS*AREA(-1)"},"WORK":{"schemaItemType":"Phenomenon","label":"Work","definition":"FORCE*LENGTH"},"POWER":{"schemaItemType":"Phenomenon","label":"Power","definition":"WORK*TIME(-1)"},"VOLUMETRIC_FLOW":{"schemaItemType":"Phenomenon","label":"Volumetric Flow","definition":"VOLUME*TIME(-1)"},"FLOW_DENSITY_PER_AREA":{"schemaItemType":"Phenomenon","label":"Flow Density per Area","description":"Flow demanded by or discharged to a Water/Sewer network per area.","definition":"VOLUMETRIC_FLOW*AREA(-1)"},"MASS_FLOW":{"schemaItemType":"Phenomenon","label":"Mass Flow","definition":"MASS*TIME(-1)"},"MOLAR_FLOW":{"schemaItemType":"Phenomenon","label":"Molar Flow","definition":"MOLE*TIME(-1)"},"DYNAMIC_VISCOSITY":{"schemaItemType":"Phenomenon","label":"Dynamic Viscosity","definition":"PRESSURE*TIME"},"KINEMATIC_VISCOSITY":{"schemaItemType":"Phenomenon","label":"Kinematic Viscosity","definition":"DYNAMIC_VISCOSITY*DENSITY(-1)"},"ELECTRIC_CHARGE":{"schemaItemType":"Phenomenon","label":"Electric Charge","definition":"CURRENT*TIME"},"ELECTRIC_POTENTIAL":{"schemaItemType":"Phenomenon","label":"Electric Potential","definition":"POWER*CURRENT(-1)"},"LUMINOUS_FLUX":{"schemaItemType":"Phenomenon","label":"Luminous Flux","definition":"LUMINOSITY*SOLIDANGLE"},"ILLUMINANCE":{"schemaItemType":"Phenomenon","label":"Illuminance","definition":"LUMINOUS_FLUX*LENGTH(-2)"},"ROTATIONAL_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Rotational Spring Constant","definition":"TORQUE*ANGLE(-1)"},"LINEAR_ROTATIONAL_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Linear Rotational Spring Constant","definition":"FORCE*ANGLE(-1)"},"SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Spring Constant","definition":"FORCE*LENGTH(-1)"},"LINEAR_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Linear Spring Constant","definition":"SPRING_CONSTANT*LENGTH(-1)"},"AREA_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Area Spring Constant","definition":"SPRING_CONSTANT*AREA(-1)"},"PIPE_DIAMETER_LENGTH":{"schemaItemType":"Phenomenon","label":"Pipe Diameter-Length","description":"The diameter of a pipe multiplied by its length, used as a coefficient for pipe-infiltration calculations.","definition":"LENGTH*LENGTH"},"THERMAL_CONDUCTIVITY":{"schemaItemType":"Phenomenon","label":"Thermal Conductivity","definition":"POWER*LENGTH(-1)*TEMPERATURE_CHANGE(-1)"},"THERMAL_INSULANCE":{"schemaItemType":"Phenomenon","label":"Thermal Resistance","definition":"AREA*TEMPERATURE_CHANGE*POWER(-1)"},"TEMPERATURE_GRADIENT":{"schemaItemType":"Phenomenon","label":"Temperature Gradient","definition":"TEMPERATURE_CHANGE*LENGTH(-1)"},"MOLAR_VOLUME":{"schemaItemType":"Phenomenon","label":"Molar Volume","definition":"VOLUME*MOLE(-1)"},"MOLAR_CONCENTRATION":{"schemaItemType":"Phenomenon","label":"Molar Concentration","definition":"MOLE*VOLUME(-1)"},"SLOPE":{"schemaItemType":"Phenomenon","label":"Slope","definition":"LENGTH*LENGTH(-1)"},"HEAT_TRANSFER":{"schemaItemType":"Phenomenon","label":"Heat Transfer","description":"https://en.wikipedia.org/wiki/Heat_transfer_coefficient","definition":"POWER*AREA(-1)*TEMPERATURE_CHANGE(-1)"},"HEAT_FLUX_DENSITY":{"schemaItemType":"Phenomenon","label":"Heat Flux Density","description":"https://en.wikipedia.org/wiki/Heat_flux see description of heat flux density","definition":"POWER*AREA(-1)"},"TORSIONAL_WARPING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Torsional Warping Constant","definition":"LENGTH(6)"},"POPULATION_DENSITY":{"schemaItemType":"Phenomenon","label":"Population Density","definition":"CAPITA*AREA(-1)"},"FREQUENCY":{"schemaItemType":"Phenomenon","label":"Frequency","definition":"TIME(-1)"},"LINEAR_LOAD":{"schemaItemType":"Phenomenon","label":"Linear Load","definition":"FORCE*LENGTH(-1)"},"ENERGY_DENSITY":{"schemaItemType":"Phenomenon","label":"Energy Density","definition":"WORK*VOLUME(-1)"},"ELECTRICAL_RESISTANCE":{"schemaItemType":"Phenomenon","label":"Electrical Resistance","definition":"ELECTRIC_POTENTIAL*CURRENT(-1)"},"ELECTRICAL_RESISTIVITY":{"schemaItemType":"Phenomenon","label":"Electrical Resistivity","definition":"ELECTRICAL_RESISTANCE*LENGTH"},"SPECIFIC_ENERGY":{"schemaItemType":"Phenomenon","label":"Specific Energy","definition":"WORK*MASS(-1)"},"SPECIFIC_HEAT_CAPACITY":{"schemaItemType":"Phenomenon","label":"Specific_heat Capacity","definition":"WORK*MASS(-1)*TEMPERATURE_CHANGE(-1)"},"SPECIFIC_HEAT_CAPACITY_MOLAR":{"schemaItemType":"Phenomenon","label":"Specific_heat Capacity Molar","definition":"WORK*MOLE(-1)*TEMPERATURE_CHANGE(-1)"},"PERCENTAGE":{"schemaItemType":"Phenomenon","label":"Percentage","definition":"NUMBER"},"PROBABILITY":{"schemaItemType":"Phenomenon","label":"Probability","definition":"NUMBER"},"LINEAR_RATE":{"schemaItemType":"Phenomenon","label":"Linear Rate","definition":"NUMBER*LENGTH(-1)"},"LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION":{"schemaItemType":"Phenomenon","label":"Linear Coefficient Of Thermal Expansion","definition":"LENGTH*LENGTH(-1)*TEMPERATURE_CHANGE(-1)"},"VOLUME_RATIO":{"schemaItemType":"Phenomenon","label":"Volume Ratio","definition":"VOLUME*VOLUME(-1)"},"LENGTH_RATIO":{"schemaItemType":"Phenomenon","definition":"LENGTH*LENGTH(-1)"},"VOLUME_PER_LENGTH":{"schemaItemType":"Phenomenon","label":"Volume per Unit Length","definition":"VOLUME*LENGTH(-1)"},"LENGTH":{"schemaItemType":"Phenomenon","label":"Length","definition":"LENGTH"},"MASS":{"schemaItemType":"Phenomenon","label":"Mass","definition":"MASS"},"TIME":{"schemaItemType":"Phenomenon","label":"Time","definition":"TIME"},"TEMPERATURE":{"schemaItemType":"Phenomenon","label":"Temperature","definition":"TEMPERATURE"},"TEMPERATURE_CHANGE":{"schemaItemType":"Phenomenon","label":"Temperature Change","definition":"TEMPERATURE_CHANGE"},"CURRENT":{"schemaItemType":"Phenomenon","label":"Current","definition":"CURRENT"},"MOLE":{"schemaItemType":"Phenomenon","label":"Mole","definition":"MOLE"},"LUMINOSITY":{"schemaItemType":"Phenomenon","label":"Luminosity","definition":"LUMINOSITY"},"ANGLE":{"schemaItemType":"Phenomenon","label":"Angle","definition":"ANGLE"},"HORIZONTAL_DIRECTION":{"schemaItemType":"Phenomenon","label":"Horizontal Direction","definition":"HORIZONTAL_DIRECTION"},"SOLIDANGLE":{"schemaItemType":"Phenomenon","label":"Solid Angle","definition":"SOLIDANGLE"},"CURRENCY":{"schemaItemType":"Phenomenon","definition":"CURRENCY"},"CAPITA":{"schemaItemType":"Phenomenon","label":"Capita","definition":"CAPITA"},"NUMBER":{"schemaItemType":"Phenomenon","label":"Number","definition":"NUMBER"},"THREAD_PITCH":{"schemaItemType":"Phenomenon","label":"Thread Pitch","definition":"LENGTH*ANGLE(-1)"},"ENTROPY":{"schemaItemType":"Phenomenon","label":"Entropy","definition":"WORK*TEMPERATURE_CHANGE(-1)"},"LUMINOUS_EFFICACY":{"schemaItemType":"Phenomenon","label":"Luminous Efficacy","definition":"LUMINOUS_FLUX*POWER(-1)"},"MOMENT_DISPLAY_SCALE":{"schemaItemType":"Phenomenon","label":"Moment Scale","description":"Display size of the linear moment","definition":"FORCE(-1)"},"FORCE_DISPLAY_SCALE":{"schemaItemType":"Phenomenon","label":"Force Scale","description":"Display size of the force","definition":"LINEAR_LOAD(-1)"},"PI":{"schemaItemType":"Constant","label":"Pi","phenomenon":"Units.LENGTH_RATIO","definition":"ONE","numerator":3.141592653589793},"QUARTER_PI":{"schemaItemType":"Constant","label":"Pi/4","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":1,"denominator":4},"HALF_PI":{"schemaItemType":"Constant","label":"Pi/2","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":1,"denominator":2},"TWO_PI":{"schemaItemType":"Constant","label":"2Pi","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":2},"DEG360":{"schemaItemType":"Constant","label":"360°","phenomenon":"Units.ANGLE","definition":"ARC_DEG","numerator":360},"STD_G":{"schemaItemType":"Constant","label":"ɡ0","phenomenon":"Units.ACCELERATION","definition":"M*S(-2)","numerator":9.80665},"DECI":{"schemaItemType":"Constant","label":"deci","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.1},"CENTI":{"schemaItemType":"Constant","label":"centi","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.01},"MILLI":{"schemaItemType":"Constant","label":"milli","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.001},"MICRO":{"schemaItemType":"Constant","label":"micro","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.000001},"NANO":{"schemaItemType":"Constant","label":"nano","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-9},"PICO":{"schemaItemType":"Constant","label":"pico","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-12},"FEMTO":{"schemaItemType":"Constant","label":"femto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-15},"ATTO":{"schemaItemType":"Constant","label":"atto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-18},"ZEPTO":{"schemaItemType":"Constant","label":"zepto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-21},"YOCTO":{"schemaItemType":"Constant","label":"yocto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-24},"DECA":{"schemaItemType":"Constant","phenomenon":"Units.NUMBER","definition":"ONE","numerator":10},"HECTO":{"schemaItemType":"Constant","label":"hecto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":100},"KILO":{"schemaItemType":"Constant","label":"kilo","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000},"MEGA":{"schemaItemType":"Constant","label":"mega","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000},"GIGA":{"schemaItemType":"Constant","label":"giga","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000},"TERA":{"schemaItemType":"Constant","label":"tera","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000},"PETA":{"schemaItemType":"Constant","label":"peta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000000},"EXA":{"schemaItemType":"Constant","label":"exa","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000000000},"ZETTA":{"schemaItemType":"Constant","label":"zetta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e+21},"YOTTA":{"schemaItemType":"Constant","label":"yotta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e+24},"MM":{"schemaItemType":"Unit","label":"mm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[MILLI]*M"},"CM":{"schemaItemType":"Unit","label":"cm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[CENTI]*M"},"DM":{"schemaItemType":"Unit","label":"dm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[DECI]*M"},"KM":{"schemaItemType":"Unit","label":"km","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[KILO]*M"},"UM":{"schemaItemType":"Unit","label":"µm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[MICRO]*M"},"MILLIINCH":{"schemaItemType":"Unit","label":"mil","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MILLI]*IN"},"MICROINCH":{"schemaItemType":"Unit","label":"µin","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MICRO]*IN"},"MILLIFOOT":{"schemaItemType":"Unit","label":"mft","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MILLI]*FT"},"IN":{"schemaItemType":"Unit","label":"in","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix B. Section 3.1, Page B-10","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"MM","numerator":25.4},"FT":{"schemaItemType":"Unit","label":"ft","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"IN","numerator":12},"YRD":{"schemaItemType":"Unit","label":"yd","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT","numerator":3},"CHAIN":{"schemaItemType":"Unit","label":"chain","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT","numerator":66},"MILE":{"schemaItemType":"Unit","label":"mi","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"YRD","numerator":1760},"US_SURVEY_IN":{"schemaItemType":"Unit","label":"in (US Survey)","description":"100/3937 Derived from the definition of us survey foot in terms of meters. Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"M","numerator":100,"denominator":3937},"US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN","numerator":12},"US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT","numerator":3},"US_SURVEY_CHAIN":{"schemaItemType":"Unit","label":"chain (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT","numerator":66},"US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mi (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD","numerator":1760},"NAUT_MILE":{"schemaItemType":"Unit","label":"nmi","description":"International Nautical Mile. Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.MARITIME","definition":"M","numerator":1852},"G":{"schemaItemType":"Unit","label":"g","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MILLI]*KG"},"MG":{"schemaItemType":"Unit","label":"mg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MILLI]*G"},"MKG":{"schemaItemType":"Unit","label":"µg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MICRO]*G"},"NG":{"schemaItemType":"Unit","label":"ng","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[NANO]*G"},"MEGAGRAM":{"schemaItemType":"Unit","label":"Mg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MEGA]*G"},"TONNE":{"schemaItemType":"Unit","label":"tonne","description":"Also known as a metric ton http://phyMETRICcs.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[KILO]*KG"},"LBM":{"schemaItemType":"Unit","label":"lb","description":"Is Avoirdupois Pound. Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. Footnote 22","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"KG","numerator":0.45359237},"SLUG":{"schemaItemType":"Unit","label":"slug","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBF*S(2)*FT(-1)"},"GRM":{"schemaItemType":"Unit","label":"gr","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix B. Section 3.2, Page B-10","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","denominator":7000},"SHORT_TON_MASS":{"schemaItemType":"Unit","label":"tn (short)","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","numerator":2000},"LONG_TON_MASS":{"schemaItemType":"Unit","label":"tn (long)","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","numerator":2240},"KIPM":{"schemaItemType":"Unit","label":"kipm","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"[KILO]*LBM"},"OZM":{"schemaItemType":"Unit","label":"oz","description":"1/16 Exact, https://en.wikipedia.org/wiki/Ounce","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","denominator":16},"MIN":{"schemaItemType":"Unit","label":"min","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":60},"HR":{"schemaItemType":"Unit","label":"h","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"MIN","numerator":60},"DAY":{"schemaItemType":"Unit","label":"days","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"HR","numerator":24},"WEEK":{"schemaItemType":"Unit","label":"week","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"DAY","numerator":7},"YR":{"schemaItemType":"Unit","label":"years","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. Year is 3.1536 E+07 seconds which is equal to 365 * 24 * 60 * 60","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"DAY","numerator":365},"YEAR_SIDEREAL":{"schemaItemType":"Unit","label":"Year (Sidereal)","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":31558150},"YEAR_TROPICAL":{"schemaItemType":"Unit","label":"Year (Tropical)","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":31556930},"MS":{"schemaItemType":"Unit","label":"ms","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"[MILLI]*S"},"MKS":{"schemaItemType":"Unit","label":"µs","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"[MICRO]*S"},"CELSIUS":{"schemaItemType":"Unit","label":"°C","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.METRIC","definition":"K","offset":273.15},"FAHRENHEIT":{"schemaItemType":"Unit","label":"°F","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.USCUSTOM","definition":"CELSIUS","numerator":5,"denominator":9,"offset":-32},"RANKINE":{"schemaItemType":"Unit","label":"°R","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.USCUSTOM","definition":"K","numerator":5,"denominator":9},"DELTA_CELSIUS":{"schemaItemType":"Unit","label":"Δ°C","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.METRIC","definition":"DELTA_KELVIN"},"DELTA_FAHRENHEIT":{"schemaItemType":"Unit","label":"Δ°F","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.USCUSTOM","definition":"DELTA_CELSIUS","numerator":5,"denominator":9},"DELTA_RANKINE":{"schemaItemType":"Unit","label":"Δ°R","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.USCUSTOM","definition":"DELTA_KELVIN","numerator":5,"denominator":9},"KELVIN_PER_M":{"schemaItemType":"Unit","label":"ΔK/m","phenomenon":"Units.TEMPERATURE_GRADIENT","unitSystem":"Units.SI","definition":"DELTA_KELVIN*M(-1)"},"STRAIN_PER_KELVIN":{"schemaItemType":"Unit","label":"1/ΔK","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.SI","definition":"DELTA_KELVIN(-1)"},"STRAIN_PER_CELSIUS":{"schemaItemType":"Unit","label":"1/Δ°C","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.METRIC","definition":"DELTA_CELSIUS(-1)"},"STRAIN_PER_FAHRENHEIT":{"schemaItemType":"Unit","label":"1/Δ°F","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.USCUSTOM","definition":"DELTA_FAHRENHEIT(-1)"},"STRAIN_PER_RANKINE":{"schemaItemType":"Unit","label":"1/Δ°R","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.USCUSTOM","definition":"DELTA_RANKINE(-1)"},"LUMEN":{"schemaItemType":"Unit","label":"lm","phenomenon":"Units.LUMINOUS_FLUX","unitSystem":"Units.SI","definition":"CD*STERAD"},"LUX":{"schemaItemType":"Unit","label":"lx","phenomenon":"Units.ILLUMINANCE","unitSystem":"Units.SI","definition":"LUMEN*M(-2)"},"LUMEN_PER_SQ_FT":{"schemaItemType":"Unit","label":"lm/ft²","phenomenon":"Units.ILLUMINANCE","unitSystem":"Units.USCUSTOM","definition":"LUMEN*FT(-2)"},"KMOL":{"schemaItemType":"Unit","label":"kmol","phenomenon":"Units.MOLE","unitSystem":"Units.METRIC","definition":"[KILO]*MOL"},"LB_MOL":{"schemaItemType":"Unit","label":"lb-mol","description":"ASTM SI 10 standard SI1-.phhc8328.pdf page 29, 35 and http://en.wikipedia.org/wiki/Mole_%28unit%29","phenomenon":"Units.MOLE","unitSystem":"Units.USCUSTOM","definition":"MOL","numerator":453.59237},"HUNDRED_PERSON":{"schemaItemType":"Unit","phenomenon":"Units.CAPITA","unitSystem":"Units.STATISTICS","definition":"[HECTO]*PERSON"},"THOUSAND_PERSON":{"schemaItemType":"Unit","phenomenon":"Units.CAPITA","unitSystem":"Units.STATISTICS","definition":"[KILO]*PERSON"},"N_M_PER_RAD":{"schemaItemType":"Unit","label":"N·m/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N_M*RAD(-1)"},"KN_M_PER_RAD":{"schemaItemType":"Unit","label":"kN·m/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN_M*RAD(-1)"},"N_M_PER_DEG":{"schemaItemType":"Unit","label":"N·m/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"N_M*ARC_DEG(-1)"},"KN_M_PER_DEG":{"schemaItemType":"Unit","label":"kN·m/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN_M*ARC_DEG(-1)"},"KPF_FT_PER_RAD":{"schemaItemType":"Unit","label":"kpf·ft/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*RAD(-1)"},"KPF_FT_PER_DEG":{"schemaItemType":"Unit","label":"kpf·ft/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*ARC_DEG(-1)"},"N_PER_RAD":{"schemaItemType":"Unit","label":"N/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N*RAD(-1)"},"KN_PER_RAD":{"schemaItemType":"Unit","label":"kN/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN*RAD(-1)"},"KPF_PER_RAD":{"schemaItemType":"Unit","label":"kpf/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF*RAD(-1)"},"SPRING_CONSTANT_N_PER_M":{"schemaItemType":"Unit","label":"N/m","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N*M(-1)"},"SPRING_CONSTANT_KN_PER_M":{"schemaItemType":"Unit","label":"kN/m","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN*M(-1)"},"SPRING_CONSTANT_KPF_PER_FT":{"schemaItemType":"Unit","label":"kpf/ft","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-1)"},"LINEAR_SPRING_CONSTANT_N_PER_SQ_M":{"schemaItemType":"Unit","label":"N/m²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"SPRING_CONSTANT_N_PER_M*M(-1)"},"LINEAR_SPRING_CONSTANT_KN_PER_SQ_M":{"schemaItemType":"Unit","label":"kN/m²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"SPRING_CONSTANT_KN_PER_M*M(-1)"},"LINEAR_SPRING_CONSTANT_KPF_PER_SQ_FT":{"schemaItemType":"Unit","label":"kpf/ft²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"SPRING_CONSTANT_KPF_PER_FT*FT(-1)"},"AREA_SPRING_CONSTANT_N_PER_CUB_M":{"schemaItemType":"Unit","label":"N/m³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"SPRING_CONSTANT_N_PER_M*SQ_M(-1)"},"AREA_SPRING_CONSTANT_KN_PER_CUB_M":{"schemaItemType":"Unit","label":"kN/m³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"SPRING_CONSTANT_KN_PER_M*SQ_M(-1)"},"AREA_SPRING_CONSTANT_KPF_PER_CUB_FT":{"schemaItemType":"Unit","label":"kpf/ft³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"SPRING_CONSTANT_KPF_PER_FT*SQ_FT(-1)"},"M_PER_SEC_SQ":{"schemaItemType":"Unit","label":"m/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.SI","definition":"M*S(-2)"},"CM_PER_SEC_SQ":{"schemaItemType":"Unit","label":"cm/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.METRIC","definition":"CM*S(-2)"},"FT_PER_SEC_SQ":{"schemaItemType":"Unit","label":"ft/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.USCUSTOM","definition":"FT*S(-2)"},"ARC_DEG":{"schemaItemType":"Unit","label":"°","description":"1/180","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[PI]*RAD","denominator":180},"ARC_MINUTE":{"schemaItemType":"Unit","label":"\'","description":"1/60","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"ARC_DEG","denominator":60},"ARC_SECOND":{"schemaItemType":"Unit","label":"\'\'","description":"1/3600","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"ARC_DEG","denominator":3600},"ARC_QUADRANT":{"schemaItemType":"Unit","label":"quadrants","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[HALF_PI]*RAD"},"GRAD":{"schemaItemType":"Unit","label":"grad","description":"1/200","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[PI]*RAD","denominator":200},"REVOLUTION":{"schemaItemType":"Unit","label":"r","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD"},"HORIZONTAL_DIR_ARC_DEG":{"schemaItemType":"Unit","label":"°","description":"1/180","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":180},"HORIZONTAL_DIR_ARC_MINUTE":{"schemaItemType":"Unit","label":"\'","description":"1/60","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"HORIZONTAL_DIR_ARC_DEG","denominator":60},"HORIZONTAL_DIR_ARC_SECOND":{"schemaItemType":"Unit","label":"\'\'","description":"1/3600","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"HORIZONTAL_DIR_ARC_DEG","denominator":3600},"HORIZONTAL_DIR_GRAD":{"schemaItemType":"Unit","label":"grad","description":"1/200","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":200},"HORIZONTAL_DIR_MILLIRAD":{"schemaItemType":"Unit","label":"mrad","description":"1/1000","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":1000},"HORIZONTAL_DIR_REVOLUTION":{"schemaItemType":"Unit","label":"r","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[TWO_PI]*HORIZONTAL_DIR_RAD"},"SQ_M":{"schemaItemType":"Unit","label":"m²","phenomenon":"Units.AREA","unitSystem":"Units.SI","definition":"M(2)"},"SQ_UM":{"schemaItemType":"Unit","label":"um²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"UM(2)"},"SQ_MM":{"schemaItemType":"Unit","label":"mm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"MM(2)"},"SQ_CM":{"schemaItemType":"Unit","label":"cm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"CM(2)"},"SQ_DM":{"schemaItemType":"Unit","label":"dm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"DM(2)"},"SQ_KM":{"schemaItemType":"Unit","label":"km²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"KM(2)"},"ARE":{"schemaItemType":"Unit","label":"are","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"[HECTO]*M(2)"},"HECTARE":{"schemaItemType":"Unit","label":"ha","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"[HECTO]*ARE"},"SQ_IN":{"schemaItemType":"Unit","label":"in²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"IN(2)"},"SQ_FT":{"schemaItemType":"Unit","label":"ft²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"FT(2)"},"THOUSAND_SQ_FT":{"schemaItemType":"Unit","label":"thousand ft²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"[KILO]*FT(2)"},"SQ_YRD":{"schemaItemType":"Unit","label":"yd²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"YRD(2)"},"SQ_MILE":{"schemaItemType":"Unit","label":"mi²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"MILE(2)"},"SQ_CHAIN":{"schemaItemType":"Unit","label":"chain²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"CHAIN(2)"},"ACRE":{"schemaItemType":"Unit","label":"acres","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"CHAIN(2)","numerator":10},"SQ_US_SURVEY_IN":{"schemaItemType":"Unit","label":"in² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN(2)"},"SQ_US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT(2)"},"SQ_US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD(2)"},"SQ_US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mile² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_MILE(2)"},"SQ_US_SURVEY_CHAIN":{"schemaItemType":"Unit","label":"chain² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_CHAIN(2)"},"US_SURVEY_ACRE":{"schemaItemType":"Unit","label":"acre (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_CHAIN(2)","numerator":10},"IN_MILE":{"schemaItemType":"Unit","label":"in·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*MILE"},"FT_MILE":{"schemaItemType":"Unit","label":"ft·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"FT*MILE"},"FT_FT":{"schemaItemType":"Unit","label":"ft·ft","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"FT*FT"},"IN_FT":{"schemaItemType":"Unit","label":"in·ft","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*FT"},"IN_M":{"schemaItemType":"Unit","label":"in·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*M"},"MM_KM":{"schemaItemType":"Unit","label":"mm·km","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*KM"},"MM_M":{"schemaItemType":"Unit","label":"mm·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*M"},"MM_MILE":{"schemaItemType":"Unit","label":"mm·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*MILE"},"M_KM":{"schemaItemType":"Unit","label":"m·km","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"M*KM"},"M_M":{"schemaItemType":"Unit","label":"m·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.SI","definition":"M*M"},"KG_PER_CUB_M":{"schemaItemType":"Unit","label":"kg/m³","phenomenon":"Units.DENSITY","unitSystem":"Units.SI","definition":"KG*M(-3)"},"KG_PER_CUB_CM":{"schemaItemType":"Unit","label":"kg/cm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"KG*CM(-3)"},"KG_PER_LITRE":{"schemaItemType":"Unit","label":"kg/dm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"KG*DM(-3)"},"G_PER_CUB_CM":{"schemaItemType":"Unit","label":"g/cm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"G*CM(-3)"},"MKG_PER_LITRE":{"schemaItemType":"Unit","label":"µg/L","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"MKG*DM(-3)"},"MG_PER_LITRE":{"schemaItemType":"Unit","label":"mg/L","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"MG*DM(-3)"},"LBM_PER_CUB_FT":{"schemaItemType":"Unit","label":"lb/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-3)"},"LBM_PER_GALLON":{"schemaItemType":"Unit","label":"lb/gal","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*GALLON(-1)"},"LBM_PER_GALLON_IMPERIAL":{"schemaItemType":"Unit","label":"lb/gal (imp)","phenomenon":"Units.DENSITY","unitSystem":"Units.IMPERIAL","definition":"LBM*GALLON_IMPERIAL(-1)"},"LBM_PER_CUB_IN":{"schemaItemType":"Unit","label":"lb/in³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*IN(-3)"},"LBM_PER_MILLION_GALLON":{"schemaItemType":"Unit","label":"lb/million gal","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*[MEGA](-1)*GALLON(-1)"},"SLUG_PER_CUB_FT":{"schemaItemType":"Unit","label":"slug/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"SLUG*FT(-3)"},"KIP_PER_CUB_FT":{"schemaItemType":"Unit","label":"kip/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"KIPM*FT(-3)"},"SHORT_TON_PER_CUB_FT":{"schemaItemType":"Unit","label":"tn (short)/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"SHORT_TON_MASS*FT(-3)"},"N_PER_CUB_M":{"schemaItemType":"Unit","label":"N/m³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.SI","definition":"N*M(-3)"},"KN_PER_CUB_M":{"schemaItemType":"Unit","label":"kN/m³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.METRIC","definition":"[KILO]*N*M(-3)"},"KPF_PER_CUB_FT":{"schemaItemType":"Unit","label":"kpf/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-3)"},"N_PER_CUB_FT":{"schemaItemType":"Unit","label":"N/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"N*FT(-3)"},"KN_PER_CUB_FT":{"schemaItemType":"Unit","label":"kN/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"[KILO]*N*FT(-3)"},"PERSON_PER_SQ_M":{"schemaItemType":"Unit","label":"p/m²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.SI","definition":"PERSON*M(-2)"},"PERSON_PER_HECTARE":{"schemaItemType":"Unit","label":"p/ha","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.METRIC","definition":"PERSON*HECTARE(-1)"},"PERSON_PER_SQ_KM":{"schemaItemType":"Unit","label":"p/km²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.METRIC","definition":"PERSON*KM(-2)"},"PERSON_PER_ACRE":{"schemaItemType":"Unit","label":"p/acre","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*ACRE(-1)"},"PERSON_PER_SQ_FT":{"schemaItemType":"Unit","label":"p/ft²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*FT(-2)"},"PERSON_PER_SQ_MILE":{"schemaItemType":"Unit","label":"p/mi²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*MILE(-2)"},"KILOAMPERE":{"schemaItemType":"Unit","label":"KA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[KILO]*A"},"MILLIAMPERE":{"schemaItemType":"Unit","label":"mA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[MILLI]*A"},"MICROAMPERE":{"schemaItemType":"Unit","label":"µA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[MICRO]*A"},"COULOMB":{"schemaItemType":"Unit","label":"C","phenomenon":"Units.ELECTRIC_CHARGE","unitSystem":"Units.SI","definition":"A*S"},"VOLT":{"schemaItemType":"Unit","label":"V","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.SI","definition":"N*M*COULOMB(-1)"},"KILOVOLT":{"schemaItemType":"Unit","label":"KV","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.METRIC","definition":"[KILO]*VOLT"},"MEGAVOLT":{"schemaItemType":"Unit","label":"MV","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.METRIC","definition":"[MEGA]*VOLT"},"J":{"schemaItemType":"Unit","phenomenon":"Units.WORK","unitSystem":"Units.SI","definition":"N*M"},"KJ":{"schemaItemType":"Unit","label":"kJ","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[KILO]*J"},"MEGAJ":{"schemaItemType":"Unit","label":"MJ","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[MEGA]*J"},"GJ":{"schemaItemType":"Unit","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[GIGA]*J"},"FT_PDL":{"schemaItemType":"Unit","label":"ft*pdl","phenomenon":"Units.WORK","unitSystem":"Units.USCUSTOM","definition":"PDL*FT"},"BTU":{"schemaItemType":"Unit","label":"Btu","description":"Is IT BTU. http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. See foot note #9: ","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"J","numerator":1055.05585262},"KILOBTU":{"schemaItemType":"Unit","label":"kBtu","phenomenon":"Units.WORK","unitSystem":"Units.USCUSTOM","definition":"[KILO]*BTU"},"WATT_SECOND":{"schemaItemType":"Unit","label":"Ws","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"W*S"},"KWH":{"schemaItemType":"Unit","label":"kW·h","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"KW*HR"},"MEGAWH":{"schemaItemType":"Unit","label":"MWh","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"MEGAW*HR"},"GWH":{"schemaItemType":"Unit","label":"GWh","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"GW*HR"},"J_PER_CUB_M":{"schemaItemType":"Unit","label":"J/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.SI","definition":"J*M(-3)"},"KJ_PER_CUB_M":{"schemaItemType":"Unit","label":"kJ/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.METRIC","definition":"KJ*M(-3)"},"KWH_PER_CUB_M":{"schemaItemType":"Unit","label":"kW·h/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.METRIC","definition":"KWH*M(-3)"},"KWH_PER_CUB_FT":{"schemaItemType":"Unit","label":"kWh/ft³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KWH*FT(-3)"},"KWH_PER_MILLION_GALLON":{"schemaItemType":"Unit","label":"kW·h/million gal","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KWH*[MEGA](-1)*GALLON(-1)"},"J_PER_KG":{"schemaItemType":"Unit","label":"J/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.SI","definition":"J*KG(-1)"},"KJ_PER_KG":{"schemaItemType":"Unit","label":"kJ/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.METRIC","definition":"KJ*KG(-1)"},"MEGAJ_PER_KG":{"schemaItemType":"Unit","label":"MJ/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.METRIC","definition":"MEGAJ*KG(-1)"},"BTU_PER_LBM":{"schemaItemType":"Unit","label":"Btu/lb","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.USCUSTOM","definition":"BTU*LBM(-1)"},"J_PER_KG_K":{"schemaItemType":"Unit","label":"J/(kg·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.SI","definition":"J*KG(-1)*DELTA_KELVIN(-1)"},"BTU_PER_LBM_RANKINE":{"schemaItemType":"Unit","label":"Btu/(lbm·Δ°R)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.USCUSTOM","definition":"BTU*LBM(-1)*DELTA_RANKINE(-1)"},"J_PER_G_CELSIUS":{"schemaItemType":"Unit","label":"J/(g·Δ°C)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.METRIC","definition":"J*G(-1)*DELTA_CELSIUS(-1)"},"J_PER_MOL_K":{"schemaItemType":"Unit","label":"J/(mol*K)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.SI","definition":"J*MOL(-1)*DELTA_KELVIN(-1)"},"J_PER_KMOL_K":{"schemaItemType":"Unit","label":"J/(kmol·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.METRIC","definition":"J*KMOL(-1)*DELTA_KELVIN(-1)"},"KJ_PER_KMOL_K":{"schemaItemType":"Unit","label":"kJ/(kmol·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.METRIC","definition":"KJ*KMOL(-1)*DELTA_KELVIN(-1)"},"BTU_PER_LB_MOL_RANKINE":{"schemaItemType":"Unit","label":"Btu/(lb-mol·Δ°R)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.USCUSTOM","definition":"BTU*LB_MOL(-1)*DELTA_RANKINE(-1)"},"CUB_M_PER_SEC":{"schemaItemType":"Unit","label":"m³/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.SI","definition":"M(3)*S(-1)"},"CUB_M_PER_MIN":{"schemaItemType":"Unit","label":"m³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*MIN(-1)"},"CUB_M_PER_HR":{"schemaItemType":"Unit","label":"m³/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*HR(-1)"},"CUB_M_PER_DAY":{"schemaItemType":"Unit","label":"m³/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*DAY(-1)"},"LITRE_PER_SEC":{"schemaItemType":"Unit","label":"L/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*S(-1)"},"LITRE_PER_MIN":{"schemaItemType":"Unit","label":"L/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*MIN(-1)"},"LITRE_PER_HR":{"schemaItemType":"Unit","label":"L/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*HR(-1)"},"LITRE_PER_DAY":{"schemaItemType":"Unit","label":"L/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*DAY(-1)"},"CUB_IN_PER_SEC":{"schemaItemType":"Unit","label":"in³/sec","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_IN*S(-1)"},"CUB_IN_PER_MIN":{"schemaItemType":"Unit","label":"in³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_IN*MIN(-1)"},"CUB_FT_PER_SEC":{"schemaItemType":"Unit","label":"ft³/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*S(-1)"},"CUB_FT_PER_MIN":{"schemaItemType":"Unit","label":"ft³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*MIN(-1)"},"CUB_FT_PER_DAY":{"schemaItemType":"Unit","label":"ft³/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*DAY(-1)"},"ACRE_FT_PER_DAY":{"schemaItemType":"Unit","label":"acre·ft/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*DAY(-1)"},"ACRE_FT_PER_HR":{"schemaItemType":"Unit","label":"acre·ft/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*HR(-1)"},"ACRE_FT_PER_MIN":{"schemaItemType":"Unit","label":"acre·ft/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*MIN(-1)"},"ACRE_IN_PER_DAY":{"schemaItemType":"Unit","label":"acre_in/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*DAY(-1)"},"ACRE_IN_PER_HR":{"schemaItemType":"Unit","label":"acre·in/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*HR(-1)"},"ACRE_IN_PER_MIN":{"schemaItemType":"Unit","label":"acre·in/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*MIN(-1)"},"GALLON_IMPERIAL_PER_SEC":{"schemaItemType":"Unit","label":"gal (imp)/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*S(-1)"},"GALLON_IMPERIAL_PER_MIN":{"schemaItemType":"Unit","label":"gal (imp)/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*MIN(-1)"},"GALLON_IMPERIAL_PER_HR":{"schemaItemType":"Unit","label":"gal (imp)/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*HR(-1)"},"GALLON_IMPERIAL_PER_DAY":{"schemaItemType":"Unit","label":"gal (imp)/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*DAY(-1)"},"GALLON_PER_SEC":{"schemaItemType":"Unit","label":"gal/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*S(-1)"},"GALLON_PER_MIN":{"schemaItemType":"Unit","label":"gal/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)"},"GALLON_PER_HR":{"schemaItemType":"Unit","label":"gal/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*HR(-1)"},"GALLON_PER_DAY":{"schemaItemType":"Unit","label":"gal/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)"},"HZ":{"schemaItemType":"Unit","label":"Hz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.SI","definition":"S(-1)"},"KHZ":{"schemaItemType":"Unit","label":"KHz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.METRIC","definition":"[KILO]*S(-1)"},"MHZ":{"schemaItemType":"Unit","label":"MHz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.METRIC","definition":"[MEGA]*S(-1)"},"CUB_M_PER_SQ_M_SEC":{"schemaItemType":"Unit","label":"m³/(m²*sec)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.SI","definition":"M*S(-1)"},"CUB_M_PER_SQ_M_DAY":{"schemaItemType":"Unit","label":"m³/(m²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"M*DAY(-1)"},"CUB_M_PER_HECTARE_DAY":{"schemaItemType":"Unit","label":"m³/(ha·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"CUB_M*HECTARE(-1)*DAY(-1)"},"CUB_M_PER_SQ_KM_DAY":{"schemaItemType":"Unit","label":"m³/(km²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"CUB_M*KM(-2)*DAY(-1)"},"LITRE_PER_SQ_M_SEC":{"schemaItemType":"Unit","label":"L/(m²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"LITRE*M(-2)*S(-1)"},"CUB_FT_PER_SQ_FT_MIN":{"schemaItemType":"Unit","label":"ft³/(ft²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT*MIN(-1)"},"CUB_FT_PER_SQ_FT_SEC":{"schemaItemType":"Unit","label":"ft³/(ft²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT*S(-1)"},"CUB_FT_PER_SQ_MILE_SEC":{"schemaItemType":"Unit","label":"ft³/(mi²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT(3)*MILE(-2)*S(-1)"},"CUB_FT_PER_ACRE_SEC":{"schemaItemType":"Unit","label":"ft³/(acres·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT(3)*ACRE(-1)*S(-1)"},"GALLON_PER_ACRE_DAY":{"schemaItemType":"Unit","label":"gal/(acre·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*ACRE(-1)"},"GALLON_PER_ACRE_MIN":{"schemaItemType":"Unit","label":"gal/(acre·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*ACRE(-1)"},"GALLON_PER_SQ_FT_MIN":{"schemaItemType":"Unit","label":"gal/(ft²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*FT(-2)"},"GALLON_PER_SQ_FT_DAY":{"schemaItemType":"Unit","label":"gal/(ft²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*FT(-2)"},"GALLON_PER_SQ_MILE_MIN":{"schemaItemType":"Unit","label":"gal/(mi²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*MILE(-2)"},"GALLON_PER_SQ_MILE_DAY":{"schemaItemType":"Unit","label":"gal/(mi²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*MILE(-2)"},"KG_PER_KG":{"schemaItemType":"Unit","label":"kg/kg","phenomenon":"Units.MASS_RATIO","unitSystem":"Units.SI","definition":"KG*KG(-1)"},"GRM_PER_LBM":{"schemaItemType":"Unit","label":"gr/lb","phenomenon":"Units.MASS_RATIO","unitSystem":"Units.USCUSTOM","definition":"GRM*LBM(-1)"},"KG_PER_SEC":{"schemaItemType":"Unit","label":"kg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.SI","definition":"KG*S(-1)"},"KG_PER_MIN":{"schemaItemType":"Unit","label":"kg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*MIN(-1)"},"KG_PER_HR":{"schemaItemType":"Unit","label":"kg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*HR(-1)"},"KG_PER_DAY":{"schemaItemType":"Unit","label":"kg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*DAY(-1)"},"G_PER_SEC":{"schemaItemType":"Unit","label":"g/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*S(-1)"},"G_PER_MIN":{"schemaItemType":"Unit","label":"g/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*MIN(-1)"},"G_PER_HR":{"schemaItemType":"Unit","label":"g/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*HR(-1)"},"MG_PER_SEC":{"schemaItemType":"Unit","label":"mg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*S(-1)"},"MG_PER_MIN":{"schemaItemType":"Unit","label":"mg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*MIN(-1)"},"MG_PER_HR":{"schemaItemType":"Unit","label":"mg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*HR(-1)"},"MG_PER_DAY":{"schemaItemType":"Unit","label":"mg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*DAY(-1)"},"MKG_PER_SEC":{"schemaItemType":"Unit","label":"µg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*S(-1)"},"MKG_PER_MIN":{"schemaItemType":"Unit","label":"µg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*MIN(-1)"},"MKG_PER_HR":{"schemaItemType":"Unit","label":"µg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*HR(-1)"},"MKG_PER_DAY":{"schemaItemType":"Unit","label":"µg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*DAY(-1)"},"TONNE_PER_HR":{"schemaItemType":"Unit","label":"tph","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"TONNE*HR(-1)"},"LBM_PER_SEC":{"schemaItemType":"Unit","label":"lb/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*S(-1)"},"LBM_PER_MIN":{"schemaItemType":"Unit","label":"lb/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*MIN(-1)"},"LBM_PER_HR":{"schemaItemType":"Unit","label":"lb/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*HR(-1)"},"LBM_PER_DAY":{"schemaItemType":"Unit","label":"lb/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*DAY(-1)"},"SHORT_TON_PER_HR":{"schemaItemType":"Unit","label":"tph","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"SHORT_TON_MASS*HR(-1)"},"MOL_PER_SEC":{"schemaItemType":"Unit","label":"mol/s","phenomenon":"Units.MOLAR_FLOW","unitSystem":"Units.SI","definition":"MOL*S(-1)"},"KMOL_PER_SEC":{"schemaItemType":"Unit","label":"kmol/s","phenomenon":"Units.MOLAR_FLOW","unitSystem":"Units.METRIC","definition":"[KILO]*MOL*S(-1)"},"N":{"schemaItemType":"Unit","phenomenon":"Units.FORCE","unitSystem":"Units.SI","definition":"KG*M*S(-2)"},"DECAN":{"schemaItemType":"Unit","label":"daN","phenomenon":"Units.FORCE","unitSystem":"Units.SI","definition":"[DECA]*N"},"KN":{"schemaItemType":"Unit","label":"kN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[KILO]*N"},"MN":{"schemaItemType":"Unit","label":"mN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[MILLI]*N"},"MEGAN":{"schemaItemType":"Unit","label":"MN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[MEGA]*N"},"KGF":{"schemaItemType":"Unit","label":"kgf","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[STD_G]*KG"},"DYNE":{"schemaItemType":"Unit","label":"dyn","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"G*CM*S(-2)"},"PDL":{"schemaItemType":"Unit","label":"pdl","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"LBM*FT*S(-2)"},"SHORT_TON_FORCE":{"schemaItemType":"Unit","label":"tnf (short)","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*SHORT_TON_MASS"},"LONG_TON_FORCE":{"schemaItemType":"Unit","label":"tnf (long)","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*LONG_TON_MASS"},"LBF":{"schemaItemType":"Unit","label":"lbf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*LBM"},"OZF":{"schemaItemType":"Unit","label":"ozf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*OZM"},"KPF":{"schemaItemType":"Unit","label":"kpf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[KILO]*LBF"},"W_PER_SQ_M":{"schemaItemType":"Unit","label":"W/m²","phenomenon":"Units.HEAT_FLUX_DENSITY","unitSystem":"Units.SI","definition":"W*M(-2)"},"W_PER_SQ_M_K":{"schemaItemType":"Unit","label":"W/(m²·ΔK)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.SI","definition":"W*M(-2)*DELTA_KELVIN(-1)"},"W_PER_SQ_M_CELSIUS":{"schemaItemType":"Unit","label":"W/(m²·Δ°C)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.METRIC","definition":"W*M(-2)*DELTA_CELSIUS(-1)"},"BTU_PER_SQ_FT_HR_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu/(ft²·h·Δ°F)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.USCUSTOM","definition":"BTU*FT(-2)*HR(-1)*DELTA_FAHRENHEIT(-1)"},"KG_PER_M":{"schemaItemType":"Unit","label":"kg/m","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.SI","definition":"KG*M(-1)"},"KG_PER_MM":{"schemaItemType":"Unit","label":"kg/mm","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.METRIC","definition":"KG*MM(-1)"},"LBM_PER_FT":{"schemaItemType":"Unit","label":"lb/ft","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-1)"},"N_PER_M":{"schemaItemType":"Unit","label":"N/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.SI","definition":"N*M(-1)"},"KN_PER_M":{"schemaItemType":"Unit","label":"kN/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"KN*M(-1)"},"MEGAN_PER_M":{"schemaItemType":"Unit","label":"MN/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"MEGAN*M(-1)"},"N_PER_MM":{"schemaItemType":"Unit","label":"N/mm","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"N*MM(-1)"},"LBF_PER_IN":{"schemaItemType":"Unit","label":"lbf/in","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-1)"},"LBF_PER_FT":{"schemaItemType":"Unit","label":"lbf/ft","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-1)"},"KGF_PER_M":{"schemaItemType":"Unit","label":"kgf/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"KGF*M(-1)"},"KPF_PER_FT":{"schemaItemType":"Unit","label":"kpf/ft","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-1)"},"PER_M":{"schemaItemType":"Unit","label":"1/m","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.SI","definition":"M(-1)"},"PER_MM":{"schemaItemType":"Unit","label":"1/mm","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.METRIC","definition":"MM(-1)"},"PER_KM":{"schemaItemType":"Unit","label":"1/km","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.METRIC","definition":"KM(-1)"},"PER_FT":{"schemaItemType":"Unit","label":"1/ft","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"FT(-1)"},"PER_MILE":{"schemaItemType":"Unit","label":"1/mile","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"MILE(-1)"},"PER_THOUSAND_FT":{"schemaItemType":"Unit","label":"1/1000 ft","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"FT(-1)","numerator":0.001},"N_M":{"schemaItemType":"Unit","label":"N·m","phenomenon":"Units.TORQUE","unitSystem":"Units.SI","definition":"N*M*RAD(-1)"},"KN_M":{"schemaItemType":"Unit","label":"kN·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"KN*M*RAD(-1)"},"MEGAN_M":{"schemaItemType":"Unit","label":"MN·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN*M*RAD(-1)"},"N_CM":{"schemaItemType":"Unit","label":"N·cm","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"N*CM*RAD(-1)"},"LBF_FT":{"schemaItemType":"Unit","label":"lbf·ft","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT*RAD(-1)"},"LBF_IN":{"schemaItemType":"Unit","label":"lbf·in","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN*RAD(-1)"},"KGF_M":{"schemaItemType":"Unit","label":"kgf·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"KGF*M*RAD(-1)"},"KPF_FT":{"schemaItemType":"Unit","label":"kpf·ft","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF*FT*RAD(-1)"},"N_M_PER_M":{"schemaItemType":"Unit","label":"N·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.SI","definition":"N_M*M(-1)"},"KN_M_PER_M":{"schemaItemType":"Unit","label":"kN·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"KN_M*M(-1)"},"MEGAN_M_PER_M":{"schemaItemType":"Unit","label":"MN·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN_M*M(-1)"},"N_CM_PER_CM":{"schemaItemType":"Unit","label":"N·cm/cm","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"N_CM*CM(-1)"},"LBF_IN_PER_IN":{"schemaItemType":"Unit","label":"lbf·in/in","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_IN*IN(-1)"},"LBF_FT_PER_FT":{"schemaItemType":"Unit","label":"lbf·ft/ft","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_FT*FT(-1)"},"KPF_FT_PER_FT":{"schemaItemType":"Unit","label":"kpf·ft/ft","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*FT(-1)"},"N_M_PER_SQ_M":{"schemaItemType":"Unit","label":"N·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.SI","definition":"N_M*M(-2)"},"KN_M_PER_SQ_M":{"schemaItemType":"Unit","label":"kN·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"KN_M*M(-2)"},"MEGAN_M_PER_SQ_M":{"schemaItemType":"Unit","label":"MN·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN_M*M(-2)"},"N_CM_PER_SQ_CM":{"schemaItemType":"Unit","label":"N·cm/cm²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"N_CM*CM(-2)"},"LBF_IN_PER_SQ_IN":{"schemaItemType":"Unit","label":"lbf·in/in²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_IN*IN(-2)"},"LBF_FT_PER_SQ_FT":{"schemaItemType":"Unit","label":"lbf·ft/ft²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_FT*FT(-2)"},"KPF_FT_PER_SQ_FT":{"schemaItemType":"Unit","label":"kpf·ft/ft²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*FT(-2)"},"CUB_M_PER_MOL":{"schemaItemType":"Unit","label":"m³/mol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.SI","definition":"CUB_M*MOL(-1)"},"CUB_M_PER_KMOL":{"schemaItemType":"Unit","label":"m³/kmol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.METRIC","definition":"CUB_M*[KILO](-1)*MOL(-1)"},"CUB_FT_PER_LB_MOL":{"schemaItemType":"Unit","label":"ft³/lb-mol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*LB_MOL(-1)"},"MOL_PER_CUB_M":{"schemaItemType":"Unit","label":"mol/m³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.SI","definition":"MOL*CUB_M(-1)"},"KMOL_PER_CUB_M":{"schemaItemType":"Unit","label":"kmol/m³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[KILO]*MOL*CUB_M(-1)"},"MOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"mol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"MOL*CUB_DM(-1)"},"MICROMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"µmol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[MICRO]*MOL*CUB_DM(-1)"},"NMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"nmol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[NANO]*MOL*CUB_DM(-1)"},"PICOMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"picomol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[PICO]*MOL*CUB_DM(-1)"},"MOL_PER_CUB_FT":{"schemaItemType":"Unit","label":"mol/ft³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.USCUSTOM","definition":"MOL*CUB_FT(-1)"},"MM_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"mm⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.METRIC","definition":"MM(4)"},"M_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"m⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.SI","definition":"M(4)"},"CM_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"cm⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.METRIC","definition":"CM(4)"},"IN_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"in⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.USCUSTOM","definition":"IN(4)"},"FT_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"ft⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.USCUSTOM","definition":"FT(4)"},"W":{"schemaItemType":"Unit","phenomenon":"Units.POWER","unitSystem":"Units.SI","definition":"N*M*S(-1)"},"KW":{"schemaItemType":"Unit","label":"kW","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[KILO]*W"},"MEGAW":{"schemaItemType":"Unit","label":"MW","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[MEGA]*W"},"GW":{"schemaItemType":"Unit","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[GIGA]*W"},"BTU_PER_HR":{"schemaItemType":"Unit","label":"Btu/h","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"BTU*HR(-1)"},"KILOBTU_PER_HR":{"schemaItemType":"Unit","label":"kBtu/h","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"[KILO]*BTU*HR(-1)"},"HP":{"schemaItemType":"Unit","label":"hp","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"LBF*FT*S(-1)","numerator":550},"PA":{"schemaItemType":"Unit","label":"N/m²","phenomenon":"Units.PRESSURE","unitSystem":"Units.SI","definition":"N*M(-2)"},"PA_GAUGE":{"schemaItemType":"Unit","label":"Pa (gauge)","description":"Offset is one standard atmosphere in PA. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"PA","numerator":1,"offset":101325},"HECTOPASCAL":{"schemaItemType":"Unit","label":"hPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[HECTO]*PA"},"KILOPASCAL":{"schemaItemType":"Unit","label":"kPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[KILO]*PA"},"MICROPASCAL":{"schemaItemType":"Unit","label":"µPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MICRO]*PA"},"KILOPASCAL_GAUGE":{"schemaItemType":"Unit","label":"kPa (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to kilopascal. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"[KILO]*PA","numerator":1,"offset":101.325},"MEGAPASCAL":{"schemaItemType":"Unit","label":"MPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MEGA]*PA"},"MEGAPASCAL_GAUGE":{"schemaItemType":"Unit","label":"MPa (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to megapascal. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"[MEGA]*PA","numerator":1,"offset":0.101325},"AT":{"schemaItemType":"Unit","label":"kgf/cm²","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.INTERNATIONAL","definition":"KGF*CM(-2)"},"AT_GAUGE":{"schemaItemType":"Unit","label":"kgf/cm² (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to atmosphere-technical (AT). Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"AT","offset":1.033227452799886},"KGF_PER_SQ_M":{"schemaItemType":"Unit","label":"kgf/m²","phenomenon":"Units.PRESSURE","unitSystem":"Units.INTERNATIONAL","definition":"KGF*M(-2)"},"ATM":{"schemaItemType":"Unit","label":"atm","description":"Standard atmosphere, see AT for atmosphere-technical. Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":101325},"BAR":{"schemaItemType":"Unit","label":"bar","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":100000},"BAR_GAUGE":{"schemaItemType":"Unit","label":"bar (Gauge)","description":"Offset is one standard atmosphere converted to BAR. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"PA","numerator":100000,"offset":1.01325},"MBAR":{"schemaItemType":"Unit","label":"mBar","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MILLI]*BAR"},"BARYE":{"schemaItemType":"Unit","label":"ba","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"DYNE*CM(-2)"},"PSI":{"schemaItemType":"Unit","label":"lbf/in²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-2)"},"PSF":{"schemaItemType":"Unit","label":"lbf/ft²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-2)"},"PSIG":{"schemaItemType":"Unit","label":"lbf/in² (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to PSI","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-2)","numerator":1,"offset":14.695948775513449},"KSI":{"schemaItemType":"Unit","label":"ksi","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"KPF*IN(-2)"},"KSF":{"schemaItemType":"Unit","label":"ksf","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-2)"},"LBF_PER_SQ_FT":{"schemaItemType":"Unit","label":"lbf/ft²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-2)"},"TORR":{"schemaItemType":"Unit","label":"torr","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. for approx conversion and Table 11 for a reference to the exact conversion","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":101325,"denominator":760},"M_H2O":{"schemaItemType":"Unit","label":"mH2O (Conv)","description":"Meter of H2O Conventional","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[KILO]*MM_H2O"},"MM_H2O":{"schemaItemType":"Unit","label":"mmH2O (Conv)","description":"Millimeter of H2O Conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":9.80665},"MM_HG_AT_32F":{"schemaItemType":"Unit","label":"mmHg@32°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. Used centimeter of mercury (0 C) to pascal","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":133.322},"FT_H2O":{"schemaItemType":"Unit","label":"ft H2O (Conv)","description":"foot of H2O Conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":2989.067},"IN_H2O_AT_32F":{"schemaItemType":"Unit","label":"inH2O@32°F","description":"Inch of H2O at 32 Fahrenheit, Water is assumed to be in a liquid state. Equal to water at 0C. No verified source","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":249.1083},"IN_H2O_AT_39_2F":{"schemaItemType":"Unit","label":"inH2O@39.2°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":249.082},"IN_H2O_AT_60F":{"schemaItemType":"Unit","label":"inH2O@60°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":248.84},"IN_HG":{"schemaItemType":"Unit","label":"inHg (Conv)","description":"Inch of HG conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3386.389},"IN_HG_AT_32F":{"schemaItemType":"Unit","label":"inHg@32°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3386.38},"IN_HG_AT_60F":{"schemaItemType":"Unit","label":"inHg@60°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3376.85},"PA_PER_M":{"schemaItemType":"Unit","label":"Pa/m","phenomenon":"Units.PRESSURE_GRADIENT","unitSystem":"Units.SI","definition":"PA*M(-1)"},"BAR_PER_KM":{"schemaItemType":"Unit","label":"bar/km","phenomenon":"Units.PRESSURE_GRADIENT","unitSystem":"Units.METRIC","definition":"BAR*KM(-1)"},"PERCENT":{"schemaItemType":"Unit","label":"%","description":"Unit used to show a ratio as a percentage in the UI.","phenomenon":"Units.PERCENTAGE","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"DECIMAL_PERCENT":{"schemaItemType":"Unit","label":"decimal percent","description":"Unit suitable for storing a decimal number that represents an unspecified ratio.","phenomenon":"Units.PERCENTAGE","unitSystem":"Units.INTERNATIONAL","definition":"PERCENT","numerator":100},"PROBABILITY_FRACTION":{"schemaItemType":"Unit","label":"","phenomenon":"Units.PROBABILITY","unitSystem":"Units.SI","definition":"ONE"},"PROBABILITY_PERCENT":{"schemaItemType":"Unit","label":"%","phenomenon":"Units.PROBABILITY","unitSystem":"Units.INTERNATIONAL","definition":"PROBABILITY_FRACTION","denominator":100},"M_PER_M":{"schemaItemType":"Unit","label":"m/m","phenomenon":"Units.SLOPE","unitSystem":"Units.SI","definition":"M*M(-1)"},"CM_PER_M":{"schemaItemType":"Unit","label":"cm/m","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"CM*M(-1)"},"MM_PER_M":{"schemaItemType":"Unit","label":"mm/m","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"MM*M(-1)"},"M_PER_KM":{"schemaItemType":"Unit","label":"m/km","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"M*KM(-1)"},"FT_PER_THOUSAND_FOOT":{"schemaItemType":"Unit","label":"ft/1000ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*[KILO](-1)*FT(-1)"},"FT_PER_FT":{"schemaItemType":"Unit","label":"ft/ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*FT(-1)"},"IN_PER_FT":{"schemaItemType":"Unit","label":"in/ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"IN*FT(-1)"},"FT_PER_IN":{"schemaItemType":"Unit","label":"ft/in","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*IN(-1)"},"FT_PER_MILE":{"schemaItemType":"Unit","label":"ft/mi","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*MILE(-1)"},"VERTICAL_PER_HORIZONTAL":{"schemaItemType":"Unit","label":"slope","phenomenon":"Units.SLOPE","unitSystem":"Units.INTERNATIONAL","definition":"M_PER_M"},"PERCENT_SLOPE":{"schemaItemType":"Unit","label":"%","phenomenon":"Units.SLOPE","unitSystem":"Units.INTERNATIONAL","definition":"DECIMAL_PERCENT(-1)*M_PER_M"},"HORIZONTAL_PER_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.VERTICAL_PER_HORIZONTAL","unitSystem":"Units.INTERNATIONAL"},"FT_HORIZONTAL_PER_FT_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.FT_PER_FT","unitSystem":"Units.USCUSTOM"},"M_HORIZONTAL_PER_M_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.M_PER_M","unitSystem":"Units.SI"},"KG_PER_SQ_M":{"schemaItemType":"Unit","label":"kg/m²","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.SI","definition":"KG*M(-2)"},"G_PER_SQ_M":{"schemaItemType":"Unit","label":"g/m²","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.METRIC","definition":"G*M(-2)"},"KG_PER_HECTARE":{"schemaItemType":"Unit","label":"kg/ha","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.METRIC","definition":"KG*HECTARE(-1)"},"LBM_PER_ACRE":{"schemaItemType":"Unit","label":"lb/acre","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*ACRE(-1)"},"W_PER_M_K":{"schemaItemType":"Unit","label":"W/(m·K)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.SI","definition":"W*M(-1)*DELTA_KELVIN(-1)"},"W_PER_M_C":{"schemaItemType":"Unit","label":"W/(m·Δ°C)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.METRIC","definition":"W*M(-1)*DELTA_CELSIUS(-1)"},"BTU_IN_PER_SQ_FT_HR_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu·in/(ft²·h·Δ°F)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.USCUSTOM","definition":"BTU*IN*FT(-2)*HR(-1)*DELTA_FAHRENHEIT(-1)"},"SQ_M_KELVIN_PER_WATT":{"schemaItemType":"Unit","label":"m²·ΔK/W","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.SI","definition":"M(2)*DELTA_KELVIN*W(-1)"},"SQ_M_CELSIUS_PER_WATT":{"schemaItemType":"Unit","label":"m²·Δ°C/W","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.METRIC","definition":"M(2)*DELTA_CELSIUS*W(-1)"},"SQ_FT_HR_FAHRENHEIT_PER_BTU":{"schemaItemType":"Unit","label":"ft²·h·Δ°F/Btu","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.USCUSTOM","definition":"FT(2)*HR*DELTA_FAHRENHEIT*BTU(-1)"},"M_PER_SEC":{"schemaItemType":"Unit","label":"m/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.SI","definition":"M*S(-1)"},"M_PER_MIN":{"schemaItemType":"Unit","label":"m/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*MIN(-1)"},"M_PER_HR":{"schemaItemType":"Unit","label":"m/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*HR(-1)"},"M_PER_DAy":{"schemaItemType":"Unit","label":"m/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*DAY(-1)"},"MM_PER_SEC":{"schemaItemType":"Unit","label":"mm/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*S(-1)"},"MM_PER_MIN":{"schemaItemType":"Unit","label":"mm/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*MIN(-1)"},"MM_PER_HR":{"schemaItemType":"Unit","label":"mm/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*HR(-1)"},"MM_PER_DAY":{"schemaItemType":"Unit","label":"mm/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*DAY(-1)"},"CM_PER_SEC":{"schemaItemType":"Unit","label":"cm/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*S(-1)"},"CM_PER_MIN":{"schemaItemType":"Unit","label":"cm/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*MIN(-1)"},"CM_PER_HR":{"schemaItemType":"Unit","label":"cm/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*HR(-1)"},"CM_PER_DAY":{"schemaItemType":"Unit","label":"cm/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*DAY(-1)"},"KM_PER_SEC":{"schemaItemType":"Unit","label":"km/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"KM*S(-1)"},"KM_PER_HR":{"schemaItemType":"Unit","label":"km/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"KM*HR(-1)"},"IN_PER_SEC":{"schemaItemType":"Unit","label":"in/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*S(-1)"},"IN_PER_MIN":{"schemaItemType":"Unit","label":"in/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*MIN(-1)"},"IN_PER_HR":{"schemaItemType":"Unit","label":"in/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*HR(-1)"},"IN_PER_DAY":{"schemaItemType":"Unit","label":"in/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*DAY(-1)"},"FT_PER_SEC":{"schemaItemType":"Unit","label":"ft/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*S(-1)"},"FT_PER_MIN":{"schemaItemType":"Unit","label":"ft/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*MIN(-1)"},"FT_PER_HR":{"schemaItemType":"Unit","label":"ft/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*HR(-1)"},"FT_PER_DAY":{"schemaItemType":"Unit","label":"ft/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*DAY(-1)"},"YRD_PER_SEC":{"schemaItemType":"Unit","label":"yrd/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"YRD*S(-1)"},"MPH":{"schemaItemType":"Unit","label":"mi/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"MILE*HR(-1)"},"KNOT_INTERNATIONAL":{"schemaItemType":"Unit","label":"knot (Int.)","phenomenon":"Units.VELOCITY","unitSystem":"Units.MARITIME","definition":"NAUT_MILE*HR(-1)"},"RAD_PER_SEC":{"schemaItemType":"Unit","label":"rad/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.SI","definition":"RAD*S(-1)"},"RAD_PER_MIN":{"schemaItemType":"Unit","label":"rad/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"RAD*MIN(-1)"},"RAD_PER_HR":{"schemaItemType":"Unit","label":"rad/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"RAD*HR(-1)"},"RPS":{"schemaItemType":"Unit","label":"cycle/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*S(-1)"},"RPM":{"schemaItemType":"Unit","label":"cycle/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*MIN(-1)"},"RPH":{"schemaItemType":"Unit","label":"cycle/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*HR(-1)"},"DEG_PER_SEC":{"schemaItemType":"Unit","label":"deg/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*S(-1)"},"DEG_PER_MIN":{"schemaItemType":"Unit","label":"deg/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*MIN(-1)"},"DEG_PER_HR":{"schemaItemType":"Unit","label":"deg/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*HR(-1)"},"PA_S":{"schemaItemType":"Unit","label":"Pa·s","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.SI","definition":"PA*S"},"POISE":{"schemaItemType":"Unit","label":"poise","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"[DECI]*PA_S"},"CENTIPOISE":{"schemaItemType":"Unit","label":"cP","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"[CENTI]*POISE"},"LBM_PER_FT_S":{"schemaItemType":"Unit","label":"lbm/(ft*s)","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-1)*S(-1)"},"SQ_M_PER_SEC":{"schemaItemType":"Unit","label":"m²/s","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.SI","definition":"M(2)*S(-1)"},"SQ_FT_PER_SEC":{"schemaItemType":"Unit","label":"ft²/s","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.USCUSTOM","definition":"FT(2)*S(-1)"},"STOKE":{"schemaItemType":"Unit","label":"St","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"CM(2)*S(-1)"},"CENTISTOKE":{"schemaItemType":"Unit","label":"cSt","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"MM(2)*S(-1)"},"CUB_M":{"schemaItemType":"Unit","label":"m³","phenomenon":"Units.VOLUME","unitSystem":"Units.SI","definition":"M(3)"},"CUB_UM":{"schemaItemType":"Unit","label":"um³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"UM(3)"},"CUB_MM":{"schemaItemType":"Unit","label":"mm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"MM(3)"},"CUB_CM":{"schemaItemType":"Unit","label":"cm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"CM(3)"},"CUB_DM":{"schemaItemType":"Unit","label":"dm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"DM(3)"},"CUB_KM":{"schemaItemType":"Unit","label":"km³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"KM(3)"},"LITRE":{"schemaItemType":"Unit","label":"L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"CUB_DM"},"THOUSAND_LITRE":{"schemaItemType":"Unit","label":"thousand L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[KILO]*LITRE"},"MILLION_LITRE":{"schemaItemType":"Unit","label":"million L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MEGA]*LITRE"},"MILLILITRE":{"schemaItemType":"Unit","label":"mL","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MILLI]*LITRE"},"MICROLITRE":{"schemaItemType":"Unit","label":"µliter","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MICRO]*LITRE"},"CUB_IN":{"schemaItemType":"Unit","label":"in³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"IN(3)"},"CUB_FT":{"schemaItemType":"Unit","label":"ft³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"FT(3)"},"CUB_YRD":{"schemaItemType":"Unit","label":"yd³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"YRD(3)"},"CUB_MILE":{"schemaItemType":"Unit","label":"mile³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"MILE(3)"},"ACRE_IN":{"schemaItemType":"Unit","label":"acre·in","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"ACRE*IN"},"ACRE_FT":{"schemaItemType":"Unit","label":"acre·ft","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"ACRE*FT"},"GALLON":{"schemaItemType":"Unit","label":"gal","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-11","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"IN(3)","numerator":231},"THOUSAND_GALLON":{"schemaItemType":"Unit","label":"thousand gal","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"[KILO]*GALLON"},"MILLION_GALLON":{"schemaItemType":"Unit","label":"million gal","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"[MEGA]*GALLON"},"CUB_US_SURVEY_IN":{"schemaItemType":"Unit","label":"in³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN(3)"},"CUB_US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT(3)"},"CUB_US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD(3)"},"CUB_US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mile³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_MILE(3)"},"GALLON_IMPERIAL":{"schemaItemType":"Unit","label":"gal (imp)","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.VOLUME","unitSystem":"Units.IMPERIAL","definition":"LITRE","numerator":4.54609},"CUB_M_PER_CUB_M":{"schemaItemType":"Unit","label":"m³/m³","phenomenon":"Units.VOLUME_RATIO","unitSystem":"Units.SI","definition":"M(3)*M(-3)"},"LITRE_PER_LITRE":{"schemaItemType":"Unit","label":"liter/liter","phenomenon":"Units.VOLUME_RATIO","unitSystem":"Units.METRIC","definition":"LITRE*LITRE(-1)"},"CUB_M_PER_KG":{"schemaItemType":"Unit","label":"m³/kg","phenomenon":"Units.SPECIFIC_VOLUME","unitSystem":"Units.SI","definition":"M(3)*KG(-1)"},"CUB_FT_PER_LBM":{"schemaItemType":"Unit","label":"ft³/lm","phenomenon":"Units.SPECIFIC_VOLUME","unitSystem":"Units.USCUSTOM","definition":"FT(3)*LBM(-1)"},"CUB_M_PER_M":{"schemaItemType":"Unit","label":"m³/m","phenomenon":"Units.VOLUME_PER_LENGTH","unitSystem":"Units.SI","definition":"M(3)*M(-1)"},"CUB_FT_PER_FT":{"schemaItemType":"Unit","label":"ft³/ft","phenomenon":"Units.VOLUME_PER_LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT(3)*FT(-1)"},"M_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"m⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.SI","definition":"M(6)"},"MM_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"mm⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.METRIC","definition":"MM(6)"},"CM_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"cm⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.METRIC","definition":"CM(6)"},"IN_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"in⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"IN(6)"},"FT_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"ft⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"FT(6)"},"VA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.SI","definition":"VOLT*A"},"KVA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.METRIC","definition":"[KILO]*VA"},"MVA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.METRIC","definition":"[MEGA]*VA"},"M":{"schemaItemType":"Unit","label":"m","phenomenon":"Units.LENGTH","unitSystem":"Units.SI","definition":"M"},"KG":{"schemaItemType":"Unit","label":"kg","phenomenon":"Units.MASS","unitSystem":"Units.SI","definition":"KG"},"S":{"schemaItemType":"Unit","label":"s","phenomenon":"Units.TIME","unitSystem":"Units.SI","definition":"S"},"K":{"schemaItemType":"Unit","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.SI","definition":"K"},"DELTA_KELVIN":{"schemaItemType":"Unit","label":"ΔK","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.SI","definition":"DELTA_KELVIN"},"A":{"schemaItemType":"Unit","phenomenon":"Units.CURRENT","unitSystem":"Units.SI","definition":"A"},"MOL":{"schemaItemType":"Unit","label":"mol","description":"Where mol is the SI gram mol or gmol.","phenomenon":"Units.MOLE","unitSystem":"Units.SI","definition":"MOL"},"CD":{"schemaItemType":"Unit","label":"cd","phenomenon":"Units.LUMINOSITY","unitSystem":"Units.SI","definition":"CD"},"RAD":{"schemaItemType":"Unit","label":"rad","phenomenon":"Units.ANGLE","unitSystem":"Units.SI","definition":"RAD"},"HORIZONTAL_DIR_RAD":{"schemaItemType":"Unit","label":"rad","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.SI","definition":"HORIZONTAL_DIR_RAD"},"STERAD":{"schemaItemType":"Unit","label":"sterad","phenomenon":"Units.SOLIDANGLE","unitSystem":"Units.SI","definition":"STERAD"},"US_DOLLAR":{"schemaItemType":"Unit","label":"$","phenomenon":"Units.CURRENCY","unitSystem":"Units.FINANCE","definition":"US_DOLLAR"},"MONETARY_UNIT":{"schemaItemType":"Unit","label":"¤","description":"For money of an unspecified denomination","phenomenon":"Units.CURRENCY","unitSystem":"Units.FINANCE","definition":"MONETARY_UNIT"},"PERSON":{"schemaItemType":"Unit","label":"person","phenomenon":"Units.CAPITA","unitSystem":"Units.SI","definition":"PERSON"},"ONE":{"schemaItemType":"Unit","label":"one","phenomenon":"Units.NUMBER","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"COEFFICIENT":{"schemaItemType":"Unit","label":"coefficient","description":"For unitless coefficients","phenomenon":"Units.NUMBER","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"OHM":{"schemaItemType":"Unit","label":"Ω","phenomenon":"Units.ELECTRICAL_RESISTANCE","unitSystem":"Units.SI","definition":"VOLT*A(-1)"},"KOHM":{"schemaItemType":"Unit","label":"kΩ","phenomenon":"Units.ELECTRICAL_RESISTANCE","unitSystem":"Units.METRIC","definition":"[KILO]*OHM"},"OHM_M":{"schemaItemType":"Unit","label":"Ω·m","phenomenon":"Units.ELECTRICAL_RESISTIVITY","unitSystem":"Units.SI","definition":"OHM*M"},"M_PER_REVOLUTION":{"schemaItemType":"Unit","label":"m/r","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.INTERNATIONAL","definition":"M*REVOLUTION(-1)"},"M_PER_RAD":{"schemaItemType":"Unit","label":"m/rad","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.SI","definition":"M*RAD(-1)"},"IN_PER_DEGREE":{"schemaItemType":"Unit","label":"in/degree","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.USCUSTOM","definition":"IN*ARC_DEG(-1)"},"J_PER_K":{"schemaItemType":"Unit","label":"J/K","phenomenon":"Units.ENTROPY","unitSystem":"Units.SI","definition":"J*DELTA_KELVIN(-1)"},"KJ_PER_K":{"schemaItemType":"Unit","label":"KJ/K","phenomenon":"Units.ENTROPY","unitSystem":"Units.METRIC","definition":"[KILO]*J*DELTA_KELVIN(-1)"},"BTU_PER_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu/°F","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.8, page 46.","phenomenon":"Units.ENTROPY","unitSystem":"Units.USCUSTOM","definition":"BTU*DELTA_FAHRENHEIT(-1)"},"LUMEN_PER_W":{"schemaItemType":"Unit","label":"lm/W","phenomenon":"Units.LUMINOUS_EFFICACY","unitSystem":"Units.SI","definition":"LUMEN*W(-1)"},"INVERSE_N":{"schemaItemType":"Unit","label":"1/N","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.SI","definition":"N(-1)"},"INVERSE_KN":{"schemaItemType":"Unit","label":"1/kN","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.METRIC","definition":"KN(-1)"},"INVERSE_KPF":{"schemaItemType":"Unit","label":"1/kpf","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.USCUSTOM","definition":"KPF(-1)"},"M_PER_N":{"schemaItemType":"Unit","label":"m/N","phenomenon":"Units.FORCE_DISPLAY_SCALE","unitSystem":"Units.SI","definition":"N_PER_M(-1)"},"M_PER_KN":{"schemaItemType":"Unit","label":"m/kN","phenomenon":"Units.FORCE_DISPLAY_SCALE","unitSystem":"Units.METRIC","definition":"KN_PER_M(-1)"}}}');
370964
+ module.exports = /*#__PURE__*/JSON.parse('{"version":"01.00.00","sourceEcSchemaVersion":"01.00.12","name":"Units","alias":"u","label":"Units","description":"Standard Set of Unit definitions for the system","items":{"SI":{"schemaItemType":"UnitSystem"},"CGS":{"schemaItemType":"UnitSystem"},"METRIC":{"schemaItemType":"UnitSystem"},"IMPERIAL":{"schemaItemType":"UnitSystem"},"MARITIME":{"schemaItemType":"UnitSystem"},"USSURVEY":{"schemaItemType":"UnitSystem"},"INDUSTRIAL":{"schemaItemType":"UnitSystem"},"INTERNATIONAL":{"schemaItemType":"UnitSystem"},"USCUSTOM":{"schemaItemType":"UnitSystem"},"STATISTICS":{"schemaItemType":"UnitSystem"},"FINANCE":{"schemaItemType":"UnitSystem"},"CONSTANT":{"schemaItemType":"UnitSystem"},"APPARENT_POWER":{"schemaItemType":"Phenomenon","label":"Apparent Power","definition":"ELECTRIC_POTENTIAL*CURRENT"},"AREA":{"schemaItemType":"Phenomenon","label":"Area","definition":"LENGTH(2)"},"VOLUME":{"schemaItemType":"Phenomenon","label":"Volume","definition":"LENGTH(3)"},"VELOCITY":{"schemaItemType":"Phenomenon","label":"Velocity","definition":"LENGTH*TIME(-1)"},"ANGULAR_VELOCITY":{"schemaItemType":"Phenomenon","label":"Angular Velocity","definition":"ANGLE*TIME(-1)"},"ACCELERATION":{"schemaItemType":"Phenomenon","label":"Acceleration","definition":"LENGTH*TIME(-2)"},"FORCE":{"schemaItemType":"Phenomenon","label":"Force","definition":"MASS*ACCELERATION"},"PRESSURE":{"schemaItemType":"Phenomenon","label":"Pressure","definition":"FORCE*AREA(-1)"},"FORCE_DENSITY":{"schemaItemType":"Phenomenon","label":"Force Density","definition":"FORCE*VOLUME(-1)"},"PRESSURE_GRADIENT":{"schemaItemType":"Phenomenon","label":"Pressure Gradient","definition":"PRESSURE*LENGTH(-1)"},"TORQUE":{"schemaItemType":"Phenomenon","label":"Torque","definition":"FORCE*LENGTH*ANGLE(-1)"},"LINEAR_TORQUE":{"schemaItemType":"Phenomenon","label":"Linear Torque","definition":"TORQUE*LENGTH(-1)"},"AREA_TORQUE":{"schemaItemType":"Phenomenon","label":"Area Torque","definition":"TORQUE*AREA(-1)"},"AREA_MOMENT_INERTIA":{"schemaItemType":"Phenomenon","label":"Area Moment Inertia","definition":"LENGTH(4)"},"MASS_RATIO":{"schemaItemType":"Phenomenon","label":"Mass Ratio","definition":"MASS*MASS(-1)"},"DENSITY":{"schemaItemType":"Phenomenon","label":"Density","definition":"MASS*VOLUME(-1)"},"SPECIFIC_VOLUME":{"schemaItemType":"Phenomenon","label":"Specific Volume","definition":"VOLUME*MASS(-1)"},"LINEAR_DENSITY":{"schemaItemType":"Phenomenon","label":"Linear Density","definition":"MASS*LENGTH(-1)"},"SURFACE_DENSITY":{"schemaItemType":"Phenomenon","label":"Surface Density","definition":"MASS*AREA(-1)"},"WORK":{"schemaItemType":"Phenomenon","label":"Work","definition":"FORCE*LENGTH"},"POWER":{"schemaItemType":"Phenomenon","label":"Power","definition":"WORK*TIME(-1)"},"VOLUMETRIC_FLOW":{"schemaItemType":"Phenomenon","label":"Volumetric Flow","definition":"VOLUME*TIME(-1)"},"FLOW_DENSITY_PER_AREA":{"schemaItemType":"Phenomenon","label":"Flow Density per Area","description":"Flow demanded by or discharged to a Water/Sewer network per area.","definition":"VOLUMETRIC_FLOW*AREA(-1)"},"MASS_FLOW":{"schemaItemType":"Phenomenon","label":"Mass Flow","definition":"MASS*TIME(-1)"},"MOLAR_FLOW":{"schemaItemType":"Phenomenon","label":"Molar Flow","definition":"MOLE*TIME(-1)"},"DYNAMIC_VISCOSITY":{"schemaItemType":"Phenomenon","label":"Dynamic Viscosity","definition":"PRESSURE*TIME"},"KINEMATIC_VISCOSITY":{"schemaItemType":"Phenomenon","label":"Kinematic Viscosity","definition":"DYNAMIC_VISCOSITY*DENSITY(-1)"},"ELECTRIC_CHARGE":{"schemaItemType":"Phenomenon","label":"Electric Charge","definition":"CURRENT*TIME"},"ELECTRIC_POTENTIAL":{"schemaItemType":"Phenomenon","label":"Electric Potential","definition":"POWER*CURRENT(-1)"},"LUMINOUS_FLUX":{"schemaItemType":"Phenomenon","label":"Luminous Flux","definition":"LUMINOSITY*SOLIDANGLE"},"ILLUMINANCE":{"schemaItemType":"Phenomenon","label":"Illuminance","definition":"LUMINOUS_FLUX*LENGTH(-2)"},"ROTATIONAL_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Rotational Spring Constant","definition":"TORQUE*ANGLE(-1)"},"LINEAR_ROTATIONAL_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Linear Rotational Spring Constant","definition":"FORCE*ANGLE(-1)"},"SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Spring Constant","definition":"FORCE*LENGTH(-1)"},"LINEAR_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Linear Spring Constant","definition":"SPRING_CONSTANT*LENGTH(-1)"},"AREA_SPRING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Area Spring Constant","definition":"SPRING_CONSTANT*AREA(-1)"},"PIPE_DIAMETER_LENGTH":{"schemaItemType":"Phenomenon","label":"Pipe Diameter-Length","description":"The diameter of a pipe multiplied by its length, used as a coefficient for pipe-infiltration calculations.","definition":"LENGTH*LENGTH"},"THERMAL_CONDUCTIVITY":{"schemaItemType":"Phenomenon","label":"Thermal Conductivity","definition":"POWER*LENGTH(-1)*TEMPERATURE_CHANGE(-1)"},"THERMAL_INSULANCE":{"schemaItemType":"Phenomenon","label":"Thermal Resistance","definition":"AREA*TEMPERATURE_CHANGE*POWER(-1)"},"TEMPERATURE_GRADIENT":{"schemaItemType":"Phenomenon","label":"Temperature Gradient","definition":"TEMPERATURE_CHANGE*LENGTH(-1)"},"MOLAR_VOLUME":{"schemaItemType":"Phenomenon","label":"Molar Volume","definition":"VOLUME*MOLE(-1)"},"MOLAR_CONCENTRATION":{"schemaItemType":"Phenomenon","label":"Molar Concentration","definition":"MOLE*VOLUME(-1)"},"SLOPE":{"schemaItemType":"Phenomenon","label":"Slope","definition":"LENGTH*LENGTH(-1)"},"HEAT_TRANSFER":{"schemaItemType":"Phenomenon","label":"Heat Transfer","description":"https://en.wikipedia.org/wiki/Heat_transfer_coefficient","definition":"POWER*AREA(-1)*TEMPERATURE_CHANGE(-1)"},"HEAT_FLUX_DENSITY":{"schemaItemType":"Phenomenon","label":"Heat Flux Density","description":"https://en.wikipedia.org/wiki/Heat_flux see description of heat flux density","definition":"POWER*AREA(-1)"},"TORSIONAL_WARPING_CONSTANT":{"schemaItemType":"Phenomenon","label":"Torsional Warping Constant","definition":"LENGTH(6)"},"POPULATION_DENSITY":{"schemaItemType":"Phenomenon","label":"Population Density","definition":"CAPITA*AREA(-1)"},"FREQUENCY":{"schemaItemType":"Phenomenon","label":"Frequency","definition":"TIME(-1)"},"LINEAR_LOAD":{"schemaItemType":"Phenomenon","label":"Linear Load","definition":"FORCE*LENGTH(-1)"},"ENERGY_DENSITY":{"schemaItemType":"Phenomenon","label":"Energy Density","definition":"WORK*VOLUME(-1)"},"ELECTRICAL_RESISTANCE":{"schemaItemType":"Phenomenon","label":"Electrical Resistance","definition":"ELECTRIC_POTENTIAL*CURRENT(-1)"},"ELECTRICAL_RESISTIVITY":{"schemaItemType":"Phenomenon","label":"Electrical Resistivity","definition":"ELECTRICAL_RESISTANCE*LENGTH"},"SPECIFIC_ENERGY":{"schemaItemType":"Phenomenon","label":"Specific Energy","definition":"WORK*MASS(-1)"},"SPECIFIC_HEAT_CAPACITY":{"schemaItemType":"Phenomenon","label":"Specific_heat Capacity","definition":"WORK*MASS(-1)*TEMPERATURE_CHANGE(-1)"},"SPECIFIC_HEAT_CAPACITY_MOLAR":{"schemaItemType":"Phenomenon","label":"Specific_heat Capacity Molar","definition":"WORK*MOLE(-1)*TEMPERATURE_CHANGE(-1)"},"PERCENTAGE":{"schemaItemType":"Phenomenon","label":"Percentage","definition":"NUMBER"},"PROBABILITY":{"schemaItemType":"Phenomenon","label":"Probability","definition":"NUMBER"},"LINEAR_RATE":{"schemaItemType":"Phenomenon","label":"Linear Rate","definition":"NUMBER*LENGTH(-1)"},"LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION":{"schemaItemType":"Phenomenon","label":"Linear Coefficient Of Thermal Expansion","definition":"LENGTH*LENGTH(-1)*TEMPERATURE_CHANGE(-1)"},"VOLUME_RATIO":{"schemaItemType":"Phenomenon","label":"Volume Ratio","definition":"VOLUME*VOLUME(-1)"},"LENGTH_RATIO":{"schemaItemType":"Phenomenon","definition":"LENGTH*LENGTH(-1)"},"VOLUME_PER_LENGTH":{"schemaItemType":"Phenomenon","label":"Volume per Unit Length","definition":"VOLUME*LENGTH(-1)"},"LENGTH":{"schemaItemType":"Phenomenon","label":"Length","definition":"LENGTH"},"MASS":{"schemaItemType":"Phenomenon","label":"Mass","definition":"MASS"},"TIME":{"schemaItemType":"Phenomenon","label":"Time","definition":"TIME"},"TEMPERATURE":{"schemaItemType":"Phenomenon","label":"Temperature","definition":"TEMPERATURE"},"TEMPERATURE_CHANGE":{"schemaItemType":"Phenomenon","label":"Temperature Change","definition":"TEMPERATURE_CHANGE"},"CURRENT":{"schemaItemType":"Phenomenon","label":"Current","definition":"CURRENT"},"MOLE":{"schemaItemType":"Phenomenon","label":"Mole","definition":"MOLE"},"LUMINOSITY":{"schemaItemType":"Phenomenon","label":"Luminosity","definition":"LUMINOSITY"},"ANGLE":{"schemaItemType":"Phenomenon","label":"Angle","definition":"ANGLE"},"HORIZONTAL_DIRECTION":{"schemaItemType":"Phenomenon","label":"Horizontal Direction","definition":"HORIZONTAL_DIRECTION"},"SOLIDANGLE":{"schemaItemType":"Phenomenon","label":"Solid Angle","definition":"SOLIDANGLE"},"CURRENCY":{"schemaItemType":"Phenomenon","definition":"CURRENCY"},"CAPITA":{"schemaItemType":"Phenomenon","label":"Capita","definition":"CAPITA"},"NUMBER":{"schemaItemType":"Phenomenon","label":"Number","definition":"NUMBER"},"THREAD_PITCH":{"schemaItemType":"Phenomenon","label":"Thread Pitch","definition":"LENGTH*ANGLE(-1)"},"ENTROPY":{"schemaItemType":"Phenomenon","label":"Entropy","definition":"WORK*TEMPERATURE_CHANGE(-1)"},"LUMINOUS_EFFICACY":{"schemaItemType":"Phenomenon","label":"Luminous Efficacy","definition":"LUMINOUS_FLUX*POWER(-1)"},"MOMENT_DISPLAY_SCALE":{"schemaItemType":"Phenomenon","label":"Moment Scale","description":"Display size of the linear moment","definition":"FORCE(-1)"},"FORCE_DISPLAY_SCALE":{"schemaItemType":"Phenomenon","label":"Force Scale","description":"Display size of the force","definition":"LINEAR_LOAD(-1)"},"PI":{"schemaItemType":"Constant","label":"Pi","phenomenon":"Units.LENGTH_RATIO","definition":"ONE","numerator":3.141592653589793},"QUARTER_PI":{"schemaItemType":"Constant","label":"Pi/4","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":1,"denominator":4},"HALF_PI":{"schemaItemType":"Constant","label":"Pi/2","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":1,"denominator":2},"TWO_PI":{"schemaItemType":"Constant","label":"2Pi","phenomenon":"Units.LENGTH_RATIO","definition":"PI","numerator":2},"DEG360":{"schemaItemType":"Constant","label":"360°","phenomenon":"Units.ANGLE","definition":"ARC_DEG","numerator":360},"STD_G":{"schemaItemType":"Constant","label":"ɡ0","phenomenon":"Units.ACCELERATION","definition":"M*S(-2)","numerator":9.80665},"DECI":{"schemaItemType":"Constant","label":"deci","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.1},"CENTI":{"schemaItemType":"Constant","label":"centi","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.01},"MILLI":{"schemaItemType":"Constant","label":"milli","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.001},"MICRO":{"schemaItemType":"Constant","label":"micro","phenomenon":"Units.NUMBER","definition":"ONE","numerator":0.000001},"NANO":{"schemaItemType":"Constant","label":"nano","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-9},"PICO":{"schemaItemType":"Constant","label":"pico","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-12},"FEMTO":{"schemaItemType":"Constant","label":"femto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-15},"ATTO":{"schemaItemType":"Constant","label":"atto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-18},"ZEPTO":{"schemaItemType":"Constant","label":"zepto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-21},"YOCTO":{"schemaItemType":"Constant","label":"yocto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e-24},"DECA":{"schemaItemType":"Constant","phenomenon":"Units.NUMBER","definition":"ONE","numerator":10},"HECTO":{"schemaItemType":"Constant","label":"hecto","phenomenon":"Units.NUMBER","definition":"ONE","numerator":100},"KILO":{"schemaItemType":"Constant","label":"kilo","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000},"MEGA":{"schemaItemType":"Constant","label":"mega","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000},"GIGA":{"schemaItemType":"Constant","label":"giga","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000},"TERA":{"schemaItemType":"Constant","label":"tera","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000},"PETA":{"schemaItemType":"Constant","label":"peta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000000},"EXA":{"schemaItemType":"Constant","label":"exa","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1000000000000000000},"ZETTA":{"schemaItemType":"Constant","label":"zetta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e+21},"YOTTA":{"schemaItemType":"Constant","label":"yotta","phenomenon":"Units.NUMBER","definition":"ONE","numerator":1e+24},"MM":{"schemaItemType":"Unit","label":"mm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[MILLI]*M"},"CM":{"schemaItemType":"Unit","label":"cm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[CENTI]*M"},"DM":{"schemaItemType":"Unit","label":"dm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[DECI]*M"},"KM":{"schemaItemType":"Unit","label":"km","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[KILO]*M"},"UM":{"schemaItemType":"Unit","label":"µm","phenomenon":"Units.LENGTH","unitSystem":"Units.METRIC","definition":"[MICRO]*M"},"MILLIINCH":{"schemaItemType":"Unit","label":"mil","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MILLI]*IN"},"MICROINCH":{"schemaItemType":"Unit","label":"µin","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MICRO]*IN"},"MILLIFOOT":{"schemaItemType":"Unit","label":"mft","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"[MILLI]*FT"},"IN":{"schemaItemType":"Unit","label":"in","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix B. Section 3.1, Page B-10","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"MM","numerator":25.4},"FT":{"schemaItemType":"Unit","label":"ft","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"IN","numerator":12},"YRD":{"schemaItemType":"Unit","label":"yd","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT","numerator":3},"CHAIN":{"schemaItemType":"Unit","label":"chain","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT","numerator":66},"MILE":{"schemaItemType":"Unit","label":"mi","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USCUSTOM","definition":"YRD","numerator":1760},"US_SURVEY_IN":{"schemaItemType":"Unit","label":"in (US Survey)","description":"100/3937 Derived from the definition of us survey foot in terms of meters. Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"M","numerator":100,"denominator":3937},"US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN","numerator":12},"US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT","numerator":3},"US_SURVEY_CHAIN":{"schemaItemType":"Unit","label":"chain (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT","numerator":66},"US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mi (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-8","phenomenon":"Units.LENGTH","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD","numerator":1760},"NAUT_MILE":{"schemaItemType":"Unit","label":"nmi","description":"International Nautical Mile. Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 2, Page C-4","phenomenon":"Units.LENGTH","unitSystem":"Units.MARITIME","definition":"M","numerator":1852},"G":{"schemaItemType":"Unit","label":"g","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MILLI]*KG"},"MG":{"schemaItemType":"Unit","label":"mg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MILLI]*G"},"MKG":{"schemaItemType":"Unit","label":"µg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MICRO]*G"},"NG":{"schemaItemType":"Unit","label":"ng","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[NANO]*G"},"MEGAGRAM":{"schemaItemType":"Unit","label":"Mg","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[MEGA]*G"},"TONNE":{"schemaItemType":"Unit","label":"tonne","description":"Also known as a metric ton http://phyMETRICcs.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.METRIC","definition":"[KILO]*KG"},"LBM":{"schemaItemType":"Unit","label":"lb","description":"Is Avoirdupois Pound. Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. Footnote 22","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"KG","numerator":0.45359237},"SLUG":{"schemaItemType":"Unit","label":"slug","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBF*S(2)*FT(-1)"},"GRM":{"schemaItemType":"Unit","label":"gr","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix B. Section 3.2, Page B-10","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","denominator":7000},"SHORT_TON_MASS":{"schemaItemType":"Unit","label":"tn (short)","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","numerator":2000},"LONG_TON_MASS":{"schemaItemType":"Unit","label":"tn (long)","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","numerator":2240},"KIPM":{"schemaItemType":"Unit","label":"kipm","description":"Exact, http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"[KILO]*LBM"},"OZM":{"schemaItemType":"Unit","label":"oz","description":"1/16 Exact, https://en.wikipedia.org/wiki/Ounce","phenomenon":"Units.MASS","unitSystem":"Units.USCUSTOM","definition":"LBM","denominator":16},"MIN":{"schemaItemType":"Unit","label":"min","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":60},"HR":{"schemaItemType":"Unit","label":"h","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"MIN","numerator":60},"DAY":{"schemaItemType":"Unit","label":"days","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"HR","numerator":24},"WEEK":{"schemaItemType":"Unit","label":"week","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"DAY","numerator":7},"YR":{"schemaItemType":"Unit","label":"years","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. Year is 3.1536 E+07 seconds which is equal to 365 * 24 * 60 * 60","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"DAY","numerator":365},"YEAR_SIDEREAL":{"schemaItemType":"Unit","label":"Year (Sidereal)","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":31558150},"YEAR_TROPICAL":{"schemaItemType":"Unit","label":"Year (Tropical)","description":"http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B.","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"S","numerator":31556930},"MS":{"schemaItemType":"Unit","label":"ms","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"[MILLI]*S"},"MKS":{"schemaItemType":"Unit","label":"µs","phenomenon":"Units.TIME","unitSystem":"Units.INTERNATIONAL","definition":"[MICRO]*S"},"CELSIUS":{"schemaItemType":"Unit","label":"°C","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.METRIC","definition":"K","offset":273.15},"FAHRENHEIT":{"schemaItemType":"Unit","label":"°F","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.USCUSTOM","definition":"CELSIUS","numerator":5,"denominator":9,"offset":-32},"RANKINE":{"schemaItemType":"Unit","label":"°R","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.USCUSTOM","definition":"K","numerator":5,"denominator":9},"DELTA_CELSIUS":{"schemaItemType":"Unit","label":"Δ°C","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.METRIC","definition":"DELTA_KELVIN"},"DELTA_FAHRENHEIT":{"schemaItemType":"Unit","label":"Δ°F","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.USCUSTOM","definition":"DELTA_CELSIUS","numerator":5,"denominator":9},"DELTA_RANKINE":{"schemaItemType":"Unit","label":"Δ°R","description":"Factor is 5/9","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.USCUSTOM","definition":"DELTA_KELVIN","numerator":5,"denominator":9},"KELVIN_PER_M":{"schemaItemType":"Unit","label":"ΔK/m","phenomenon":"Units.TEMPERATURE_GRADIENT","unitSystem":"Units.SI","definition":"DELTA_KELVIN*M(-1)"},"STRAIN_PER_KELVIN":{"schemaItemType":"Unit","label":"1/ΔK","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.SI","definition":"DELTA_KELVIN(-1)"},"STRAIN_PER_CELSIUS":{"schemaItemType":"Unit","label":"1/Δ°C","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.METRIC","definition":"DELTA_CELSIUS(-1)"},"STRAIN_PER_FAHRENHEIT":{"schemaItemType":"Unit","label":"1/Δ°F","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.USCUSTOM","definition":"DELTA_FAHRENHEIT(-1)"},"STRAIN_PER_RANKINE":{"schemaItemType":"Unit","label":"1/Δ°R","phenomenon":"Units.LINEAR_COEFFICIENT_OF_THERMAL_EXPANSION","unitSystem":"Units.USCUSTOM","definition":"DELTA_RANKINE(-1)"},"LUMEN":{"schemaItemType":"Unit","label":"lm","phenomenon":"Units.LUMINOUS_FLUX","unitSystem":"Units.SI","definition":"CD*STERAD"},"LUX":{"schemaItemType":"Unit","label":"lx","phenomenon":"Units.ILLUMINANCE","unitSystem":"Units.SI","definition":"LUMEN*M(-2)"},"LUMEN_PER_SQ_FT":{"schemaItemType":"Unit","label":"lm/ft²","phenomenon":"Units.ILLUMINANCE","unitSystem":"Units.USCUSTOM","definition":"LUMEN*FT(-2)"},"KMOL":{"schemaItemType":"Unit","label":"kmol","phenomenon":"Units.MOLE","unitSystem":"Units.METRIC","definition":"[KILO]*MOL"},"LB_MOL":{"schemaItemType":"Unit","label":"lb-mol","description":"ASTM SI 10 standard SI1-.phhc8328.pdf page 29, 35 and http://en.wikipedia.org/wiki/Mole_%28unit%29","phenomenon":"Units.MOLE","unitSystem":"Units.USCUSTOM","definition":"MOL","numerator":453.59237},"HUNDRED_PERSON":{"schemaItemType":"Unit","phenomenon":"Units.CAPITA","unitSystem":"Units.STATISTICS","definition":"[HECTO]*PERSON"},"THOUSAND_PERSON":{"schemaItemType":"Unit","phenomenon":"Units.CAPITA","unitSystem":"Units.STATISTICS","definition":"[KILO]*PERSON"},"N_M_PER_RAD":{"schemaItemType":"Unit","label":"N·m/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N_M*RAD(-1)"},"KN_M_PER_RAD":{"schemaItemType":"Unit","label":"kN·m/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN_M*RAD(-1)"},"N_M_PER_DEG":{"schemaItemType":"Unit","label":"N·m/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"N_M*ARC_DEG(-1)"},"KN_M_PER_DEG":{"schemaItemType":"Unit","label":"kN·m/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN_M*ARC_DEG(-1)"},"KPF_FT_PER_RAD":{"schemaItemType":"Unit","label":"kpf·ft/rad","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*RAD(-1)"},"KPF_FT_PER_DEG":{"schemaItemType":"Unit","label":"kpf·ft/deg","phenomenon":"Units.ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*ARC_DEG(-1)"},"N_PER_RAD":{"schemaItemType":"Unit","label":"N/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N*RAD(-1)"},"KN_PER_RAD":{"schemaItemType":"Unit","label":"kN/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN*RAD(-1)"},"KPF_PER_RAD":{"schemaItemType":"Unit","label":"kpf/rad","phenomenon":"Units.LINEAR_ROTATIONAL_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF*RAD(-1)"},"SPRING_CONSTANT_N_PER_M":{"schemaItemType":"Unit","label":"N/m","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.SI","definition":"N*M(-1)"},"SPRING_CONSTANT_KN_PER_M":{"schemaItemType":"Unit","label":"kN/m","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"KN*M(-1)"},"SPRING_CONSTANT_KPF_PER_FT":{"schemaItemType":"Unit","label":"kpf/ft","phenomenon":"Units.SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-1)"},"LINEAR_SPRING_CONSTANT_N_PER_SQ_M":{"schemaItemType":"Unit","label":"N/m²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"SPRING_CONSTANT_N_PER_M*M(-1)"},"LINEAR_SPRING_CONSTANT_KN_PER_SQ_M":{"schemaItemType":"Unit","label":"kN/m²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"SPRING_CONSTANT_KN_PER_M*M(-1)"},"LINEAR_SPRING_CONSTANT_KPF_PER_SQ_FT":{"schemaItemType":"Unit","label":"kpf/ft²","phenomenon":"Units.LINEAR_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"SPRING_CONSTANT_KPF_PER_FT*FT(-1)"},"AREA_SPRING_CONSTANT_N_PER_CUB_M":{"schemaItemType":"Unit","label":"N/m³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.SI","definition":"SPRING_CONSTANT_N_PER_M*SQ_M(-1)"},"AREA_SPRING_CONSTANT_KN_PER_CUB_M":{"schemaItemType":"Unit","label":"kN/m³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.METRIC","definition":"SPRING_CONSTANT_KN_PER_M*SQ_M(-1)"},"AREA_SPRING_CONSTANT_KPF_PER_CUB_FT":{"schemaItemType":"Unit","label":"kpf/ft³","phenomenon":"Units.AREA_SPRING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"SPRING_CONSTANT_KPF_PER_FT*SQ_FT(-1)"},"M_PER_SEC_SQ":{"schemaItemType":"Unit","label":"m/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.SI","definition":"M*S(-2)"},"CM_PER_SEC_SQ":{"schemaItemType":"Unit","label":"cm/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.METRIC","definition":"CM*S(-2)"},"FT_PER_SEC_SQ":{"schemaItemType":"Unit","label":"ft/sec²","phenomenon":"Units.ACCELERATION","unitSystem":"Units.USCUSTOM","definition":"FT*S(-2)"},"ARC_DEG":{"schemaItemType":"Unit","label":"°","description":"1/180","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[PI]*RAD","denominator":180},"ARC_MINUTE":{"schemaItemType":"Unit","label":"\'","description":"1/60","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"ARC_DEG","denominator":60},"ARC_SECOND":{"schemaItemType":"Unit","label":"\'\'","description":"1/3600","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"ARC_DEG","denominator":3600},"ARC_QUADRANT":{"schemaItemType":"Unit","label":"quadrants","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[HALF_PI]*RAD"},"GRAD":{"schemaItemType":"Unit","label":"grad","description":"1/200","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[PI]*RAD","denominator":200},"REVOLUTION":{"schemaItemType":"Unit","label":"r","phenomenon":"Units.ANGLE","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD"},"HORIZONTAL_DIR_ARC_DEG":{"schemaItemType":"Unit","label":"°","description":"1/180","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":180},"HORIZONTAL_DIR_ARC_MINUTE":{"schemaItemType":"Unit","label":"\'","description":"1/60","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"HORIZONTAL_DIR_ARC_DEG","denominator":60},"HORIZONTAL_DIR_ARC_SECOND":{"schemaItemType":"Unit","label":"\'\'","description":"1/3600","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"HORIZONTAL_DIR_ARC_DEG","denominator":3600},"HORIZONTAL_DIR_GRAD":{"schemaItemType":"Unit","label":"grad","description":"1/200","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":200},"HORIZONTAL_DIR_MILLIRAD":{"schemaItemType":"Unit","label":"mrad","description":"1/1000","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[PI]*HORIZONTAL_DIR_RAD","denominator":1000},"HORIZONTAL_DIR_REVOLUTION":{"schemaItemType":"Unit","label":"r","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.METRIC","definition":"[TWO_PI]*HORIZONTAL_DIR_RAD"},"SQ_M":{"schemaItemType":"Unit","label":"m²","phenomenon":"Units.AREA","unitSystem":"Units.SI","definition":"M(2)"},"SQ_UM":{"schemaItemType":"Unit","label":"um²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"UM(2)"},"SQ_MM":{"schemaItemType":"Unit","label":"mm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"MM(2)"},"SQ_CM":{"schemaItemType":"Unit","label":"cm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"CM(2)"},"SQ_DM":{"schemaItemType":"Unit","label":"dm²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"DM(2)"},"SQ_KM":{"schemaItemType":"Unit","label":"km²","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"KM(2)"},"ARE":{"schemaItemType":"Unit","label":"are","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"[HECTO]*M(2)"},"HECTARE":{"schemaItemType":"Unit","label":"ha","phenomenon":"Units.AREA","unitSystem":"Units.METRIC","definition":"[HECTO]*ARE"},"SQ_IN":{"schemaItemType":"Unit","label":"in²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"IN(2)"},"SQ_FT":{"schemaItemType":"Unit","label":"ft²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"FT(2)"},"THOUSAND_SQ_FT":{"schemaItemType":"Unit","label":"thousand ft²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"[KILO]*FT(2)"},"SQ_YRD":{"schemaItemType":"Unit","label":"yd²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"YRD(2)"},"SQ_MILE":{"schemaItemType":"Unit","label":"mi²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"MILE(2)"},"SQ_CHAIN":{"schemaItemType":"Unit","label":"chain²","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"CHAIN(2)"},"ACRE":{"schemaItemType":"Unit","label":"acres","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.AREA","unitSystem":"Units.USCUSTOM","definition":"CHAIN(2)","numerator":10},"SQ_US_SURVEY_IN":{"schemaItemType":"Unit","label":"in² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN(2)"},"SQ_US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT(2)"},"SQ_US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD(2)"},"SQ_US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mile² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_MILE(2)"},"SQ_US_SURVEY_CHAIN":{"schemaItemType":"Unit","label":"chain² (US Survey)","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_CHAIN(2)"},"US_SURVEY_ACRE":{"schemaItemType":"Unit","label":"acre (US Survey)","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-9","phenomenon":"Units.AREA","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_CHAIN(2)","numerator":10},"IN_MILE":{"schemaItemType":"Unit","label":"in·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*MILE"},"FT_MILE":{"schemaItemType":"Unit","label":"ft·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"FT*MILE"},"FT_FT":{"schemaItemType":"Unit","label":"ft·ft","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"FT*FT"},"IN_FT":{"schemaItemType":"Unit","label":"in·ft","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*FT"},"IN_M":{"schemaItemType":"Unit","label":"in·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"IN*M"},"MM_KM":{"schemaItemType":"Unit","label":"mm·km","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*KM"},"MM_M":{"schemaItemType":"Unit","label":"mm·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*M"},"MM_MILE":{"schemaItemType":"Unit","label":"mm·mi","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"MM*MILE"},"M_KM":{"schemaItemType":"Unit","label":"m·km","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.INDUSTRIAL","definition":"M*KM"},"M_M":{"schemaItemType":"Unit","label":"m·m","phenomenon":"Units.PIPE_DIAMETER_LENGTH","unitSystem":"Units.SI","definition":"M*M"},"KG_PER_CUB_M":{"schemaItemType":"Unit","label":"kg/m³","phenomenon":"Units.DENSITY","unitSystem":"Units.SI","definition":"KG*M(-3)"},"KG_PER_CUB_CM":{"schemaItemType":"Unit","label":"kg/cm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"KG*CM(-3)"},"KG_PER_LITRE":{"schemaItemType":"Unit","label":"kg/dm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"KG*DM(-3)"},"G_PER_CUB_CM":{"schemaItemType":"Unit","label":"g/cm³","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"G*CM(-3)"},"MKG_PER_LITRE":{"schemaItemType":"Unit","label":"µg/L","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"MKG*DM(-3)"},"MG_PER_LITRE":{"schemaItemType":"Unit","label":"mg/L","phenomenon":"Units.DENSITY","unitSystem":"Units.METRIC","definition":"MG*DM(-3)"},"LBM_PER_CUB_FT":{"schemaItemType":"Unit","label":"lb/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-3)"},"LBM_PER_GALLON":{"schemaItemType":"Unit","label":"lb/gal","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*GALLON(-1)"},"LBM_PER_GALLON_IMPERIAL":{"schemaItemType":"Unit","label":"lb/gal (imp)","phenomenon":"Units.DENSITY","unitSystem":"Units.IMPERIAL","definition":"LBM*GALLON_IMPERIAL(-1)"},"LBM_PER_CUB_IN":{"schemaItemType":"Unit","label":"lb/in³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*IN(-3)"},"LBM_PER_MILLION_GALLON":{"schemaItemType":"Unit","label":"lb/million gal","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*[MEGA](-1)*GALLON(-1)"},"SLUG_PER_CUB_FT":{"schemaItemType":"Unit","label":"slug/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"SLUG*FT(-3)"},"KIP_PER_CUB_FT":{"schemaItemType":"Unit","label":"kip/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"KIPM*FT(-3)"},"SHORT_TON_PER_CUB_FT":{"schemaItemType":"Unit","label":"tn (short)/ft³","phenomenon":"Units.DENSITY","unitSystem":"Units.USCUSTOM","definition":"SHORT_TON_MASS*FT(-3)"},"N_PER_CUB_M":{"schemaItemType":"Unit","label":"N/m³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.SI","definition":"N*M(-3)"},"KN_PER_CUB_M":{"schemaItemType":"Unit","label":"kN/m³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.METRIC","definition":"[KILO]*N*M(-3)"},"KPF_PER_CUB_FT":{"schemaItemType":"Unit","label":"kpf/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-3)"},"N_PER_CUB_FT":{"schemaItemType":"Unit","label":"N/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"N*FT(-3)"},"KN_PER_CUB_FT":{"schemaItemType":"Unit","label":"kN/ft³","phenomenon":"Units.FORCE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"[KILO]*N*FT(-3)"},"PERSON_PER_SQ_M":{"schemaItemType":"Unit","label":"p/m²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.SI","definition":"PERSON*M(-2)"},"PERSON_PER_HECTARE":{"schemaItemType":"Unit","label":"p/ha","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.METRIC","definition":"PERSON*HECTARE(-1)"},"PERSON_PER_SQ_KM":{"schemaItemType":"Unit","label":"p/km²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.METRIC","definition":"PERSON*KM(-2)"},"PERSON_PER_ACRE":{"schemaItemType":"Unit","label":"p/acre","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*ACRE(-1)"},"PERSON_PER_SQ_FT":{"schemaItemType":"Unit","label":"p/ft²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*FT(-2)"},"PERSON_PER_SQ_MILE":{"schemaItemType":"Unit","label":"p/mi²","phenomenon":"Units.POPULATION_DENSITY","unitSystem":"Units.USCUSTOM","definition":"PERSON*MILE(-2)"},"KILOAMPERE":{"schemaItemType":"Unit","label":"KA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[KILO]*A"},"MILLIAMPERE":{"schemaItemType":"Unit","label":"mA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[MILLI]*A"},"MICROAMPERE":{"schemaItemType":"Unit","label":"µA","phenomenon":"Units.CURRENT","unitSystem":"Units.METRIC","definition":"[MICRO]*A"},"COULOMB":{"schemaItemType":"Unit","label":"C","phenomenon":"Units.ELECTRIC_CHARGE","unitSystem":"Units.SI","definition":"A*S"},"VOLT":{"schemaItemType":"Unit","label":"V","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.SI","definition":"N*M*COULOMB(-1)"},"KILOVOLT":{"schemaItemType":"Unit","label":"KV","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.METRIC","definition":"[KILO]*VOLT"},"MEGAVOLT":{"schemaItemType":"Unit","label":"MV","phenomenon":"Units.ELECTRIC_POTENTIAL","unitSystem":"Units.METRIC","definition":"[MEGA]*VOLT"},"J":{"schemaItemType":"Unit","phenomenon":"Units.WORK","unitSystem":"Units.SI","definition":"N*M"},"KJ":{"schemaItemType":"Unit","label":"kJ","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[KILO]*J"},"MEGAJ":{"schemaItemType":"Unit","label":"MJ","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[MEGA]*J"},"GJ":{"schemaItemType":"Unit","phenomenon":"Units.WORK","unitSystem":"Units.METRIC","definition":"[GIGA]*J"},"FT_PDL":{"schemaItemType":"Unit","label":"ft*pdl","phenomenon":"Units.WORK","unitSystem":"Units.USCUSTOM","definition":"PDL*FT"},"BTU":{"schemaItemType":"Unit","label":"Btu","description":"Is IT BTU. http://physics.nist.gov/cuu/pdf/sp811.pdf, Appendix B. See foot note #9: ","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"J","numerator":1055.05585262},"KILOBTU":{"schemaItemType":"Unit","label":"kBtu","phenomenon":"Units.WORK","unitSystem":"Units.USCUSTOM","definition":"[KILO]*BTU"},"WATT_SECOND":{"schemaItemType":"Unit","label":"Ws","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"W*S"},"KWH":{"schemaItemType":"Unit","label":"kW·h","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"KW*HR"},"MEGAWH":{"schemaItemType":"Unit","label":"MWh","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"MEGAW*HR"},"GWH":{"schemaItemType":"Unit","label":"GWh","phenomenon":"Units.WORK","unitSystem":"Units.INTERNATIONAL","definition":"GW*HR"},"J_PER_CUB_M":{"schemaItemType":"Unit","label":"J/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.SI","definition":"J*M(-3)"},"KJ_PER_CUB_M":{"schemaItemType":"Unit","label":"kJ/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.METRIC","definition":"KJ*M(-3)"},"KWH_PER_CUB_M":{"schemaItemType":"Unit","label":"kW·h/m³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.METRIC","definition":"KWH*M(-3)"},"KWH_PER_CUB_FT":{"schemaItemType":"Unit","label":"kWh/ft³","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KWH*FT(-3)"},"KWH_PER_MILLION_GALLON":{"schemaItemType":"Unit","label":"kW·h/million gal","phenomenon":"Units.ENERGY_DENSITY","unitSystem":"Units.USCUSTOM","definition":"KWH*[MEGA](-1)*GALLON(-1)"},"J_PER_KG":{"schemaItemType":"Unit","label":"J/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.SI","definition":"J*KG(-1)"},"KJ_PER_KG":{"schemaItemType":"Unit","label":"kJ/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.METRIC","definition":"KJ*KG(-1)"},"MEGAJ_PER_KG":{"schemaItemType":"Unit","label":"MJ/kg","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.METRIC","definition":"MEGAJ*KG(-1)"},"BTU_PER_LBM":{"schemaItemType":"Unit","label":"Btu/lb","phenomenon":"Units.SPECIFIC_ENERGY","unitSystem":"Units.USCUSTOM","definition":"BTU*LBM(-1)"},"J_PER_KG_K":{"schemaItemType":"Unit","label":"J/(kg·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.SI","definition":"J*KG(-1)*DELTA_KELVIN(-1)"},"BTU_PER_LBM_RANKINE":{"schemaItemType":"Unit","label":"Btu/(lbm·Δ°R)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.USCUSTOM","definition":"BTU*LBM(-1)*DELTA_RANKINE(-1)"},"J_PER_G_CELSIUS":{"schemaItemType":"Unit","label":"J/(g·Δ°C)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY","unitSystem":"Units.METRIC","definition":"J*G(-1)*DELTA_CELSIUS(-1)"},"J_PER_MOL_K":{"schemaItemType":"Unit","label":"J/(mol*K)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.SI","definition":"J*MOL(-1)*DELTA_KELVIN(-1)"},"J_PER_KMOL_K":{"schemaItemType":"Unit","label":"J/(kmol·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.METRIC","definition":"J*KMOL(-1)*DELTA_KELVIN(-1)"},"KJ_PER_KMOL_K":{"schemaItemType":"Unit","label":"kJ/(kmol·ΔK)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.METRIC","definition":"KJ*KMOL(-1)*DELTA_KELVIN(-1)"},"BTU_PER_LB_MOL_RANKINE":{"schemaItemType":"Unit","label":"Btu/(lb-mol·Δ°R)","phenomenon":"Units.SPECIFIC_HEAT_CAPACITY_MOLAR","unitSystem":"Units.USCUSTOM","definition":"BTU*LB_MOL(-1)*DELTA_RANKINE(-1)"},"CUB_M_PER_SEC":{"schemaItemType":"Unit","label":"m³/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.SI","definition":"M(3)*S(-1)"},"CUB_M_PER_MIN":{"schemaItemType":"Unit","label":"m³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*MIN(-1)"},"CUB_M_PER_HR":{"schemaItemType":"Unit","label":"m³/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*HR(-1)"},"CUB_M_PER_DAY":{"schemaItemType":"Unit","label":"m³/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"M(3)*DAY(-1)"},"LITRE_PER_SEC":{"schemaItemType":"Unit","label":"L/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*S(-1)"},"LITRE_PER_MIN":{"schemaItemType":"Unit","label":"L/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*MIN(-1)"},"LITRE_PER_HR":{"schemaItemType":"Unit","label":"L/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*HR(-1)"},"LITRE_PER_DAY":{"schemaItemType":"Unit","label":"L/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.METRIC","definition":"LITRE*DAY(-1)"},"CUB_IN_PER_SEC":{"schemaItemType":"Unit","label":"in³/sec","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_IN*S(-1)"},"CUB_IN_PER_MIN":{"schemaItemType":"Unit","label":"in³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_IN*MIN(-1)"},"CUB_FT_PER_SEC":{"schemaItemType":"Unit","label":"ft³/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*S(-1)"},"CUB_FT_PER_MIN":{"schemaItemType":"Unit","label":"ft³/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*MIN(-1)"},"CUB_FT_PER_DAY":{"schemaItemType":"Unit","label":"ft³/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*DAY(-1)"},"ACRE_FT_PER_DAY":{"schemaItemType":"Unit","label":"acre·ft/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*DAY(-1)"},"ACRE_FT_PER_HR":{"schemaItemType":"Unit","label":"acre·ft/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*HR(-1)"},"ACRE_FT_PER_MIN":{"schemaItemType":"Unit","label":"acre·ft/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_FT*MIN(-1)"},"ACRE_IN_PER_DAY":{"schemaItemType":"Unit","label":"acre_in/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*DAY(-1)"},"ACRE_IN_PER_HR":{"schemaItemType":"Unit","label":"acre·in/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*HR(-1)"},"ACRE_IN_PER_MIN":{"schemaItemType":"Unit","label":"acre·in/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"ACRE_IN*MIN(-1)"},"GALLON_IMPERIAL_PER_SEC":{"schemaItemType":"Unit","label":"gal (imp)/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*S(-1)"},"GALLON_IMPERIAL_PER_MIN":{"schemaItemType":"Unit","label":"gal (imp)/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*MIN(-1)"},"GALLON_IMPERIAL_PER_HR":{"schemaItemType":"Unit","label":"gal (imp)/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*HR(-1)"},"GALLON_IMPERIAL_PER_DAY":{"schemaItemType":"Unit","label":"gal (imp)/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.IMPERIAL","definition":"GALLON_IMPERIAL*DAY(-1)"},"GALLON_PER_SEC":{"schemaItemType":"Unit","label":"gal/s","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*S(-1)"},"GALLON_PER_MIN":{"schemaItemType":"Unit","label":"gal/min","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)"},"GALLON_PER_HR":{"schemaItemType":"Unit","label":"gal/h","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*HR(-1)"},"GALLON_PER_DAY":{"schemaItemType":"Unit","label":"gal/day","phenomenon":"Units.VOLUMETRIC_FLOW","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)"},"HZ":{"schemaItemType":"Unit","label":"Hz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.SI","definition":"S(-1)"},"KHZ":{"schemaItemType":"Unit","label":"KHz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.METRIC","definition":"[KILO]*S(-1)"},"MHZ":{"schemaItemType":"Unit","label":"MHz","phenomenon":"Units.FREQUENCY","unitSystem":"Units.METRIC","definition":"[MEGA]*S(-1)"},"CUB_M_PER_SQ_M_SEC":{"schemaItemType":"Unit","label":"m³/(m²*sec)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.SI","definition":"M*S(-1)"},"CUB_M_PER_SQ_M_DAY":{"schemaItemType":"Unit","label":"m³/(m²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"M*DAY(-1)"},"CUB_M_PER_HECTARE_DAY":{"schemaItemType":"Unit","label":"m³/(ha·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"CUB_M*HECTARE(-1)*DAY(-1)"},"CUB_M_PER_SQ_KM_DAY":{"schemaItemType":"Unit","label":"m³/(km²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"CUB_M*KM(-2)*DAY(-1)"},"LITRE_PER_SQ_M_SEC":{"schemaItemType":"Unit","label":"L/(m²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.METRIC","definition":"LITRE*M(-2)*S(-1)"},"CUB_FT_PER_SQ_FT_MIN":{"schemaItemType":"Unit","label":"ft³/(ft²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT*MIN(-1)"},"CUB_FT_PER_SQ_FT_SEC":{"schemaItemType":"Unit","label":"ft³/(ft²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT*S(-1)"},"CUB_FT_PER_SQ_MILE_SEC":{"schemaItemType":"Unit","label":"ft³/(mi²·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT(3)*MILE(-2)*S(-1)"},"CUB_FT_PER_ACRE_SEC":{"schemaItemType":"Unit","label":"ft³/(acres·s)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"FT(3)*ACRE(-1)*S(-1)"},"GALLON_PER_ACRE_DAY":{"schemaItemType":"Unit","label":"gal/(acre·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*ACRE(-1)"},"GALLON_PER_ACRE_MIN":{"schemaItemType":"Unit","label":"gal/(acre·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*ACRE(-1)"},"GALLON_PER_SQ_FT_MIN":{"schemaItemType":"Unit","label":"gal/(ft²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*FT(-2)"},"GALLON_PER_SQ_FT_DAY":{"schemaItemType":"Unit","label":"gal/(ft²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*FT(-2)"},"GALLON_PER_SQ_MILE_MIN":{"schemaItemType":"Unit","label":"gal/(mi²·min)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*MIN(-1)*MILE(-2)"},"GALLON_PER_SQ_MILE_DAY":{"schemaItemType":"Unit","label":"gal/(mi²·day)","phenomenon":"Units.FLOW_DENSITY_PER_AREA","unitSystem":"Units.USCUSTOM","definition":"GALLON*DAY(-1)*MILE(-2)"},"KG_PER_KG":{"schemaItemType":"Unit","label":"kg/kg","phenomenon":"Units.MASS_RATIO","unitSystem":"Units.SI","definition":"KG*KG(-1)"},"GRM_PER_LBM":{"schemaItemType":"Unit","label":"gr/lb","phenomenon":"Units.MASS_RATIO","unitSystem":"Units.USCUSTOM","definition":"GRM*LBM(-1)"},"KG_PER_SEC":{"schemaItemType":"Unit","label":"kg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.SI","definition":"KG*S(-1)"},"KG_PER_MIN":{"schemaItemType":"Unit","label":"kg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*MIN(-1)"},"KG_PER_HR":{"schemaItemType":"Unit","label":"kg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*HR(-1)"},"KG_PER_DAY":{"schemaItemType":"Unit","label":"kg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"KG*DAY(-1)"},"G_PER_SEC":{"schemaItemType":"Unit","label":"g/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*S(-1)"},"G_PER_MIN":{"schemaItemType":"Unit","label":"g/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*MIN(-1)"},"G_PER_HR":{"schemaItemType":"Unit","label":"g/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"G*HR(-1)"},"MG_PER_SEC":{"schemaItemType":"Unit","label":"mg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*S(-1)"},"MG_PER_MIN":{"schemaItemType":"Unit","label":"mg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*MIN(-1)"},"MG_PER_HR":{"schemaItemType":"Unit","label":"mg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*HR(-1)"},"MG_PER_DAY":{"schemaItemType":"Unit","label":"mg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MG*DAY(-1)"},"MKG_PER_SEC":{"schemaItemType":"Unit","label":"µg/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*S(-1)"},"MKG_PER_MIN":{"schemaItemType":"Unit","label":"µg/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*MIN(-1)"},"MKG_PER_HR":{"schemaItemType":"Unit","label":"µg/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*HR(-1)"},"MKG_PER_DAY":{"schemaItemType":"Unit","label":"µg/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"MKG*DAY(-1)"},"TONNE_PER_HR":{"schemaItemType":"Unit","label":"tph","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.METRIC","definition":"TONNE*HR(-1)"},"LBM_PER_SEC":{"schemaItemType":"Unit","label":"lb/s","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*S(-1)"},"LBM_PER_MIN":{"schemaItemType":"Unit","label":"lb/min","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*MIN(-1)"},"LBM_PER_HR":{"schemaItemType":"Unit","label":"lb/h","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*HR(-1)"},"LBM_PER_DAY":{"schemaItemType":"Unit","label":"lb/day","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"LBM*DAY(-1)"},"SHORT_TON_PER_HR":{"schemaItemType":"Unit","label":"tph","phenomenon":"Units.MASS_FLOW","unitSystem":"Units.USCUSTOM","definition":"SHORT_TON_MASS*HR(-1)"},"MOL_PER_SEC":{"schemaItemType":"Unit","label":"mol/s","phenomenon":"Units.MOLAR_FLOW","unitSystem":"Units.SI","definition":"MOL*S(-1)"},"KMOL_PER_SEC":{"schemaItemType":"Unit","label":"kmol/s","phenomenon":"Units.MOLAR_FLOW","unitSystem":"Units.METRIC","definition":"[KILO]*MOL*S(-1)"},"N":{"schemaItemType":"Unit","phenomenon":"Units.FORCE","unitSystem":"Units.SI","definition":"KG*M*S(-2)"},"DECAN":{"schemaItemType":"Unit","label":"daN","phenomenon":"Units.FORCE","unitSystem":"Units.SI","definition":"[DECA]*N"},"KN":{"schemaItemType":"Unit","label":"kN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[KILO]*N"},"MN":{"schemaItemType":"Unit","label":"mN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[MILLI]*N"},"MEGAN":{"schemaItemType":"Unit","label":"MN","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[MEGA]*N"},"KGF":{"schemaItemType":"Unit","label":"kgf","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"[STD_G]*KG"},"DYNE":{"schemaItemType":"Unit","label":"dyn","phenomenon":"Units.FORCE","unitSystem":"Units.METRIC","definition":"G*CM*S(-2)"},"PDL":{"schemaItemType":"Unit","label":"pdl","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"LBM*FT*S(-2)"},"SHORT_TON_FORCE":{"schemaItemType":"Unit","label":"tnf (short)","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*SHORT_TON_MASS"},"LONG_TON_FORCE":{"schemaItemType":"Unit","label":"tnf (long)","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*LONG_TON_MASS"},"LBF":{"schemaItemType":"Unit","label":"lbf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*LBM"},"OZF":{"schemaItemType":"Unit","label":"ozf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[STD_G]*OZM"},"KPF":{"schemaItemType":"Unit","label":"kpf","phenomenon":"Units.FORCE","unitSystem":"Units.USCUSTOM","definition":"[KILO]*LBF"},"W_PER_SQ_M":{"schemaItemType":"Unit","label":"W/m²","phenomenon":"Units.HEAT_FLUX_DENSITY","unitSystem":"Units.SI","definition":"W*M(-2)"},"W_PER_SQ_M_K":{"schemaItemType":"Unit","label":"W/(m²·ΔK)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.SI","definition":"W*M(-2)*DELTA_KELVIN(-1)"},"W_PER_SQ_M_CELSIUS":{"schemaItemType":"Unit","label":"W/(m²·Δ°C)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.METRIC","definition":"W*M(-2)*DELTA_CELSIUS(-1)"},"BTU_PER_SQ_FT_HR_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu/(ft²·h·Δ°F)","phenomenon":"Units.HEAT_TRANSFER","unitSystem":"Units.USCUSTOM","definition":"BTU*FT(-2)*HR(-1)*DELTA_FAHRENHEIT(-1)"},"KG_PER_M":{"schemaItemType":"Unit","label":"kg/m","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.SI","definition":"KG*M(-1)"},"KG_PER_MM":{"schemaItemType":"Unit","label":"kg/mm","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.METRIC","definition":"KG*MM(-1)"},"LBM_PER_FT":{"schemaItemType":"Unit","label":"lb/ft","phenomenon":"Units.LINEAR_DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-1)"},"N_PER_M":{"schemaItemType":"Unit","label":"N/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.SI","definition":"N*M(-1)"},"KN_PER_M":{"schemaItemType":"Unit","label":"kN/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"KN*M(-1)"},"MEGAN_PER_M":{"schemaItemType":"Unit","label":"MN/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"MEGAN*M(-1)"},"N_PER_MM":{"schemaItemType":"Unit","label":"N/mm","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"N*MM(-1)"},"LBF_PER_IN":{"schemaItemType":"Unit","label":"lbf/in","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-1)"},"LBF_PER_FT":{"schemaItemType":"Unit","label":"lbf/ft","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-1)"},"KGF_PER_M":{"schemaItemType":"Unit","label":"kgf/m","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.METRIC","definition":"KGF*M(-1)"},"KPF_PER_FT":{"schemaItemType":"Unit","label":"kpf/ft","phenomenon":"Units.LINEAR_LOAD","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-1)"},"PER_M":{"schemaItemType":"Unit","label":"1/m","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.SI","definition":"M(-1)"},"PER_MM":{"schemaItemType":"Unit","label":"1/mm","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.METRIC","definition":"MM(-1)"},"PER_KM":{"schemaItemType":"Unit","label":"1/km","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.METRIC","definition":"KM(-1)"},"PER_FT":{"schemaItemType":"Unit","label":"1/ft","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"FT(-1)"},"PER_MILE":{"schemaItemType":"Unit","label":"1/mile","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"MILE(-1)"},"PER_THOUSAND_FT":{"schemaItemType":"Unit","label":"1/1000 ft","phenomenon":"Units.LINEAR_RATE","unitSystem":"Units.USCUSTOM","definition":"FT(-1)","numerator":0.001},"N_M":{"schemaItemType":"Unit","label":"N·m","phenomenon":"Units.TORQUE","unitSystem":"Units.SI","definition":"N*M*RAD(-1)"},"KN_M":{"schemaItemType":"Unit","label":"kN·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"KN*M*RAD(-1)"},"MEGAN_M":{"schemaItemType":"Unit","label":"MN·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN*M*RAD(-1)"},"N_CM":{"schemaItemType":"Unit","label":"N·cm","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"N*CM*RAD(-1)"},"LBF_FT":{"schemaItemType":"Unit","label":"lbf·ft","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT*RAD(-1)"},"LBF_IN":{"schemaItemType":"Unit","label":"lbf·in","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN*RAD(-1)"},"KGF_M":{"schemaItemType":"Unit","label":"kgf·m","phenomenon":"Units.TORQUE","unitSystem":"Units.METRIC","definition":"KGF*M*RAD(-1)"},"KPF_FT":{"schemaItemType":"Unit","label":"kpf·ft","phenomenon":"Units.TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF*FT*RAD(-1)"},"N_M_PER_M":{"schemaItemType":"Unit","label":"N·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.SI","definition":"N_M*M(-1)"},"KN_M_PER_M":{"schemaItemType":"Unit","label":"kN·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"KN_M*M(-1)"},"MEGAN_M_PER_M":{"schemaItemType":"Unit","label":"MN·m/m","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN_M*M(-1)"},"N_CM_PER_CM":{"schemaItemType":"Unit","label":"N·cm/cm","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.METRIC","definition":"N_CM*CM(-1)"},"LBF_IN_PER_IN":{"schemaItemType":"Unit","label":"lbf·in/in","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_IN*IN(-1)"},"LBF_FT_PER_FT":{"schemaItemType":"Unit","label":"lbf·ft/ft","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_FT*FT(-1)"},"KPF_FT_PER_FT":{"schemaItemType":"Unit","label":"kpf·ft/ft","phenomenon":"Units.LINEAR_TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*FT(-1)"},"N_M_PER_SQ_M":{"schemaItemType":"Unit","label":"N·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.SI","definition":"N_M*M(-2)"},"KN_M_PER_SQ_M":{"schemaItemType":"Unit","label":"kN·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"KN_M*M(-2)"},"MEGAN_M_PER_SQ_M":{"schemaItemType":"Unit","label":"MN·m/m²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"MEGAN_M*M(-2)"},"N_CM_PER_SQ_CM":{"schemaItemType":"Unit","label":"N·cm/cm²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.METRIC","definition":"N_CM*CM(-2)"},"LBF_IN_PER_SQ_IN":{"schemaItemType":"Unit","label":"lbf·in/in²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_IN*IN(-2)"},"LBF_FT_PER_SQ_FT":{"schemaItemType":"Unit","label":"lbf·ft/ft²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"LBF_FT*FT(-2)"},"KPF_FT_PER_SQ_FT":{"schemaItemType":"Unit","label":"kpf·ft/ft²","phenomenon":"Units.AREA_TORQUE","unitSystem":"Units.USCUSTOM","definition":"KPF_FT*FT(-2)"},"CUB_M_PER_MOL":{"schemaItemType":"Unit","label":"m³/mol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.SI","definition":"CUB_M*MOL(-1)"},"CUB_M_PER_KMOL":{"schemaItemType":"Unit","label":"m³/kmol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.METRIC","definition":"CUB_M*[KILO](-1)*MOL(-1)"},"CUB_FT_PER_LB_MOL":{"schemaItemType":"Unit","label":"ft³/lb-mol","phenomenon":"Units.MOLAR_VOLUME","unitSystem":"Units.USCUSTOM","definition":"CUB_FT*LB_MOL(-1)"},"MOL_PER_CUB_M":{"schemaItemType":"Unit","label":"mol/m³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.SI","definition":"MOL*CUB_M(-1)"},"KMOL_PER_CUB_M":{"schemaItemType":"Unit","label":"kmol/m³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[KILO]*MOL*CUB_M(-1)"},"MOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"mol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"MOL*CUB_DM(-1)"},"MICROMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"µmol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[MICRO]*MOL*CUB_DM(-1)"},"NMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"nmol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[NANO]*MOL*CUB_DM(-1)"},"PICOMOL_PER_CUB_DM":{"schemaItemType":"Unit","label":"picomol/dm³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.METRIC","definition":"[PICO]*MOL*CUB_DM(-1)"},"MOL_PER_CUB_FT":{"schemaItemType":"Unit","label":"mol/ft³","phenomenon":"Units.MOLAR_CONCENTRATION","unitSystem":"Units.USCUSTOM","definition":"MOL*CUB_FT(-1)"},"MM_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"mm⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.METRIC","definition":"MM(4)"},"M_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"m⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.SI","definition":"M(4)"},"CM_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"cm⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.METRIC","definition":"CM(4)"},"IN_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"in⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.USCUSTOM","definition":"IN(4)"},"FT_TO_THE_FOURTH":{"schemaItemType":"Unit","label":"ft⁴","phenomenon":"Units.AREA_MOMENT_INERTIA","unitSystem":"Units.USCUSTOM","definition":"FT(4)"},"W":{"schemaItemType":"Unit","phenomenon":"Units.POWER","unitSystem":"Units.SI","definition":"N*M*S(-1)"},"KW":{"schemaItemType":"Unit","label":"kW","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[KILO]*W"},"MEGAW":{"schemaItemType":"Unit","label":"MW","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[MEGA]*W"},"GW":{"schemaItemType":"Unit","phenomenon":"Units.POWER","unitSystem":"Units.METRIC","definition":"[GIGA]*W"},"BTU_PER_HR":{"schemaItemType":"Unit","label":"Btu/h","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"BTU*HR(-1)"},"KILOBTU_PER_HR":{"schemaItemType":"Unit","label":"kBtu/h","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"[KILO]*BTU*HR(-1)"},"HP":{"schemaItemType":"Unit","label":"hp","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.POWER","unitSystem":"Units.USCUSTOM","definition":"LBF*FT*S(-1)","numerator":550},"PA":{"schemaItemType":"Unit","label":"N/m²","phenomenon":"Units.PRESSURE","unitSystem":"Units.SI","definition":"N*M(-2)"},"PA_GAUGE":{"schemaItemType":"Unit","label":"Pa (gauge)","description":"Offset is one standard atmosphere in PA. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"PA","numerator":1,"offset":101325},"HECTOPASCAL":{"schemaItemType":"Unit","label":"hPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[HECTO]*PA"},"KILOPASCAL":{"schemaItemType":"Unit","label":"kPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[KILO]*PA"},"MICROPASCAL":{"schemaItemType":"Unit","label":"µPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MICRO]*PA"},"KILOPASCAL_GAUGE":{"schemaItemType":"Unit","label":"kPa (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to kilopascal. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"[KILO]*PA","numerator":1,"offset":101.325},"MEGAPASCAL":{"schemaItemType":"Unit","label":"MPa","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MEGA]*PA"},"MEGAPASCAL_GAUGE":{"schemaItemType":"Unit","label":"MPa (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to megapascal. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"[MEGA]*PA","numerator":1,"offset":0.101325},"AT":{"schemaItemType":"Unit","label":"kgf/cm²","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.INTERNATIONAL","definition":"KGF*CM(-2)"},"AT_GAUGE":{"schemaItemType":"Unit","label":"kgf/cm² (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to atmosphere-technical (AT). Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"AT","offset":1.033227452799886},"KGF_PER_SQ_M":{"schemaItemType":"Unit","label":"kgf/m²","phenomenon":"Units.PRESSURE","unitSystem":"Units.INTERNATIONAL","definition":"KGF*M(-2)"},"ATM":{"schemaItemType":"Unit","label":"atm","description":"Standard atmosphere, see AT for atmosphere-technical. Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":101325},"BAR":{"schemaItemType":"Unit","label":"bar","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":100000},"BAR_GAUGE":{"schemaItemType":"Unit","label":"bar (Gauge)","description":"Offset is one standard atmosphere converted to BAR. Offset is exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. ","phenomenon":"Units.PRESSURE","unitSystem":"Units.INDUSTRIAL","definition":"PA","numerator":100000,"offset":1.01325},"MBAR":{"schemaItemType":"Unit","label":"mBar","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[MILLI]*BAR"},"BARYE":{"schemaItemType":"Unit","label":"ba","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"DYNE*CM(-2)"},"PSI":{"schemaItemType":"Unit","label":"lbf/in²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-2)"},"PSF":{"schemaItemType":"Unit","label":"lbf/ft²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-2)"},"PSIG":{"schemaItemType":"Unit","label":"lbf/in² (Gauge)","description":"Offset is one standard atmosphere (101325 PA) converted to PSI","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*IN(-2)","numerator":1,"offset":14.695948775513449},"KSI":{"schemaItemType":"Unit","label":"ksi","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"KPF*IN(-2)"},"KSF":{"schemaItemType":"Unit","label":"ksf","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"KPF*FT(-2)"},"LBF_PER_SQ_FT":{"schemaItemType":"Unit","label":"lbf/ft²","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"LBF*FT(-2)"},"TORR":{"schemaItemType":"Unit","label":"torr","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. for approx conversion and Table 11 for a reference to the exact conversion","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":101325,"denominator":760},"M_H2O":{"schemaItemType":"Unit","label":"mH2O (Conv)","description":"Meter of H2O Conventional","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"[KILO]*MM_H2O"},"MM_H2O":{"schemaItemType":"Unit","label":"mmH2O (Conv)","description":"Millimeter of H2O Conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":9.80665},"MM_HG_AT_32F":{"schemaItemType":"Unit","label":"mmHg@32°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B. Used centimeter of mercury (0 C) to pascal","phenomenon":"Units.PRESSURE","unitSystem":"Units.METRIC","definition":"PA","numerator":133.322},"FT_H2O":{"schemaItemType":"Unit","label":"ft H2O (Conv)","description":"foot of H2O Conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":2989.067},"IN_H2O_AT_32F":{"schemaItemType":"Unit","label":"inH2O@32°F","description":"Inch of H2O at 32 Fahrenheit, Water is assumed to be in a liquid state. Equal to water at 0C. No verified source","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":249.1083},"IN_H2O_AT_39_2F":{"schemaItemType":"Unit","label":"inH2O@39.2°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":249.082},"IN_H2O_AT_60F":{"schemaItemType":"Unit","label":"inH2O@60°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":248.84},"IN_HG":{"schemaItemType":"Unit","label":"inHg (Conv)","description":"Inch of HG conventional, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3386.389},"IN_HG_AT_32F":{"schemaItemType":"Unit","label":"inHg@32°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3386.38},"IN_HG_AT_60F":{"schemaItemType":"Unit","label":"inHg@60°F","description":"See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.PRESSURE","unitSystem":"Units.USCUSTOM","definition":"PA","numerator":3376.85},"PA_PER_M":{"schemaItemType":"Unit","label":"Pa/m","phenomenon":"Units.PRESSURE_GRADIENT","unitSystem":"Units.SI","definition":"PA*M(-1)"},"BAR_PER_KM":{"schemaItemType":"Unit","label":"bar/km","phenomenon":"Units.PRESSURE_GRADIENT","unitSystem":"Units.METRIC","definition":"BAR*KM(-1)"},"PERCENT":{"schemaItemType":"Unit","label":"%","description":"Unit used to show a ratio as a percentage in the UI.","phenomenon":"Units.PERCENTAGE","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"DECIMAL_PERCENT":{"schemaItemType":"Unit","label":"decimal percent","description":"Unit suitable for storing a decimal number that represents an unspecified ratio.","phenomenon":"Units.PERCENTAGE","unitSystem":"Units.INTERNATIONAL","definition":"PERCENT","numerator":100},"PROBABILITY_FRACTION":{"schemaItemType":"Unit","label":"","phenomenon":"Units.PROBABILITY","unitSystem":"Units.SI","definition":"ONE"},"PROBABILITY_PERCENT":{"schemaItemType":"Unit","label":"%","phenomenon":"Units.PROBABILITY","unitSystem":"Units.INTERNATIONAL","definition":"PROBABILITY_FRACTION","denominator":100},"DECIMAL_LENGTH_RATIO":{"schemaItemType":"Unit","label":"decimal length ratio","description":"Unitless decimal number representing a ratio of two lengths, equivalent to M_PER_M_LENGTH_RATIO. For drawing scales, value = paper length / model length, e.g. 1:100 is stored as 0.01.","phenomenon":"Units.LENGTH_RATIO","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"M_PER_M_LENGTH_RATIO":{"schemaItemType":"Unit","label":"m:m","description":"Ratio of two lengths, such as a drawing scale. Value = paper length / model length, e.g. 1:100 is stored as 0.01 and 1/4 in = 1 ft is stored as 1/48 (0.0208333...).","phenomenon":"Units.LENGTH_RATIO","unitSystem":"Units.SI","definition":"M*M(-1)"},"IN_PER_FT_LENGTH_RATIO":{"schemaItemType":"Unit","label":"in:ft","description":"Ratio of a length in inches to a length in feet, such as an architectural drawing scale. Value = paper length (in) / model length (ft), e.g. 1/4 in = 1 ft is stored as 0.25.","phenomenon":"Units.LENGTH_RATIO","unitSystem":"Units.USCUSTOM","definition":"IN*FT(-1)"},"M_PER_M":{"schemaItemType":"Unit","label":"m/m","phenomenon":"Units.SLOPE","unitSystem":"Units.SI","definition":"M*M(-1)"},"CM_PER_M":{"schemaItemType":"Unit","label":"cm/m","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"CM*M(-1)"},"MM_PER_M":{"schemaItemType":"Unit","label":"mm/m","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"MM*M(-1)"},"M_PER_KM":{"schemaItemType":"Unit","label":"m/km","phenomenon":"Units.SLOPE","unitSystem":"Units.METRIC","definition":"M*KM(-1)"},"FT_PER_THOUSAND_FOOT":{"schemaItemType":"Unit","label":"ft/1000ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*[KILO](-1)*FT(-1)"},"FT_PER_FT":{"schemaItemType":"Unit","label":"ft/ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*FT(-1)"},"IN_PER_FT":{"schemaItemType":"Unit","label":"in/ft","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"IN*FT(-1)"},"FT_PER_IN":{"schemaItemType":"Unit","label":"ft/in","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*IN(-1)"},"FT_PER_MILE":{"schemaItemType":"Unit","label":"ft/mi","phenomenon":"Units.SLOPE","unitSystem":"Units.USCUSTOM","definition":"FT*MILE(-1)"},"VERTICAL_PER_HORIZONTAL":{"schemaItemType":"Unit","label":"slope","phenomenon":"Units.SLOPE","unitSystem":"Units.INTERNATIONAL","definition":"M_PER_M"},"PERCENT_SLOPE":{"schemaItemType":"Unit","label":"%","phenomenon":"Units.SLOPE","unitSystem":"Units.INTERNATIONAL","definition":"DECIMAL_PERCENT(-1)*M_PER_M"},"HORIZONTAL_PER_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.VERTICAL_PER_HORIZONTAL","unitSystem":"Units.INTERNATIONAL"},"FT_HORIZONTAL_PER_FT_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.FT_PER_FT","unitSystem":"Units.USCUSTOM"},"M_HORIZONTAL_PER_M_VERTICAL":{"schemaItemType":"InvertedUnit","invertsUnit":"Units.M_PER_M","unitSystem":"Units.SI"},"KG_PER_SQ_M":{"schemaItemType":"Unit","label":"kg/m²","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.SI","definition":"KG*M(-2)"},"G_PER_SQ_M":{"schemaItemType":"Unit","label":"g/m²","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.METRIC","definition":"G*M(-2)"},"KG_PER_HECTARE":{"schemaItemType":"Unit","label":"kg/ha","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.METRIC","definition":"KG*HECTARE(-1)"},"LBM_PER_ACRE":{"schemaItemType":"Unit","label":"lb/acre","phenomenon":"Units.SURFACE_DENSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*ACRE(-1)"},"W_PER_M_K":{"schemaItemType":"Unit","label":"W/(m·K)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.SI","definition":"W*M(-1)*DELTA_KELVIN(-1)"},"W_PER_M_C":{"schemaItemType":"Unit","label":"W/(m·Δ°C)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.METRIC","definition":"W*M(-1)*DELTA_CELSIUS(-1)"},"BTU_IN_PER_SQ_FT_HR_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu·in/(ft²·h·Δ°F)","phenomenon":"Units.THERMAL_CONDUCTIVITY","unitSystem":"Units.USCUSTOM","definition":"BTU*IN*FT(-2)*HR(-1)*DELTA_FAHRENHEIT(-1)"},"SQ_M_KELVIN_PER_WATT":{"schemaItemType":"Unit","label":"m²·ΔK/W","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.SI","definition":"M(2)*DELTA_KELVIN*W(-1)"},"SQ_M_CELSIUS_PER_WATT":{"schemaItemType":"Unit","label":"m²·Δ°C/W","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.METRIC","definition":"M(2)*DELTA_CELSIUS*W(-1)"},"SQ_FT_HR_FAHRENHEIT_PER_BTU":{"schemaItemType":"Unit","label":"ft²·h·Δ°F/Btu","phenomenon":"Units.THERMAL_INSULANCE","unitSystem":"Units.USCUSTOM","definition":"FT(2)*HR*DELTA_FAHRENHEIT*BTU(-1)"},"M_PER_SEC":{"schemaItemType":"Unit","label":"m/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.SI","definition":"M*S(-1)"},"M_PER_MIN":{"schemaItemType":"Unit","label":"m/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*MIN(-1)"},"M_PER_HR":{"schemaItemType":"Unit","label":"m/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*HR(-1)"},"M_PER_DAy":{"schemaItemType":"Unit","label":"m/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"M*DAY(-1)"},"MM_PER_SEC":{"schemaItemType":"Unit","label":"mm/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*S(-1)"},"MM_PER_MIN":{"schemaItemType":"Unit","label":"mm/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*MIN(-1)"},"MM_PER_HR":{"schemaItemType":"Unit","label":"mm/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*HR(-1)"},"MM_PER_DAY":{"schemaItemType":"Unit","label":"mm/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"MM*DAY(-1)"},"CM_PER_SEC":{"schemaItemType":"Unit","label":"cm/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*S(-1)"},"CM_PER_MIN":{"schemaItemType":"Unit","label":"cm/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*MIN(-1)"},"CM_PER_HR":{"schemaItemType":"Unit","label":"cm/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*HR(-1)"},"CM_PER_DAY":{"schemaItemType":"Unit","label":"cm/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"CM*DAY(-1)"},"KM_PER_SEC":{"schemaItemType":"Unit","label":"km/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"KM*S(-1)"},"KM_PER_HR":{"schemaItemType":"Unit","label":"km/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.METRIC","definition":"KM*HR(-1)"},"IN_PER_SEC":{"schemaItemType":"Unit","label":"in/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*S(-1)"},"IN_PER_MIN":{"schemaItemType":"Unit","label":"in/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*MIN(-1)"},"IN_PER_HR":{"schemaItemType":"Unit","label":"in/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*HR(-1)"},"IN_PER_DAY":{"schemaItemType":"Unit","label":"in/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"IN*DAY(-1)"},"FT_PER_SEC":{"schemaItemType":"Unit","label":"ft/s","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*S(-1)"},"FT_PER_MIN":{"schemaItemType":"Unit","label":"ft/min","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*MIN(-1)"},"FT_PER_HR":{"schemaItemType":"Unit","label":"ft/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*HR(-1)"},"FT_PER_DAY":{"schemaItemType":"Unit","label":"ft/day","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"FT*DAY(-1)"},"YRD_PER_SEC":{"schemaItemType":"Unit","label":"yrd/sec","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"YRD*S(-1)"},"MPH":{"schemaItemType":"Unit","label":"mi/h","phenomenon":"Units.VELOCITY","unitSystem":"Units.USCUSTOM","definition":"MILE*HR(-1)"},"KNOT_INTERNATIONAL":{"schemaItemType":"Unit","label":"knot (Int.)","phenomenon":"Units.VELOCITY","unitSystem":"Units.MARITIME","definition":"NAUT_MILE*HR(-1)"},"RAD_PER_SEC":{"schemaItemType":"Unit","label":"rad/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.SI","definition":"RAD*S(-1)"},"RAD_PER_MIN":{"schemaItemType":"Unit","label":"rad/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"RAD*MIN(-1)"},"RAD_PER_HR":{"schemaItemType":"Unit","label":"rad/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"RAD*HR(-1)"},"RPS":{"schemaItemType":"Unit","label":"cycle/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*S(-1)"},"RPM":{"schemaItemType":"Unit","label":"cycle/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*MIN(-1)"},"RPH":{"schemaItemType":"Unit","label":"cycle/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"[TWO_PI]*RAD*HR(-1)"},"DEG_PER_SEC":{"schemaItemType":"Unit","label":"deg/sec","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*S(-1)"},"DEG_PER_MIN":{"schemaItemType":"Unit","label":"deg/min","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*MIN(-1)"},"DEG_PER_HR":{"schemaItemType":"Unit","label":"deg/hr","phenomenon":"Units.ANGULAR_VELOCITY","unitSystem":"Units.METRIC","definition":"ARC_DEG*HR(-1)"},"PA_S":{"schemaItemType":"Unit","label":"Pa·s","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.SI","definition":"PA*S"},"POISE":{"schemaItemType":"Unit","label":"poise","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"[DECI]*PA_S"},"CENTIPOISE":{"schemaItemType":"Unit","label":"cP","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"[CENTI]*POISE"},"LBM_PER_FT_S":{"schemaItemType":"Unit","label":"lbm/(ft*s)","phenomenon":"Units.DYNAMIC_VISCOSITY","unitSystem":"Units.USCUSTOM","definition":"LBM*FT(-1)*S(-1)"},"SQ_M_PER_SEC":{"schemaItemType":"Unit","label":"m²/s","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.SI","definition":"M(2)*S(-1)"},"SQ_FT_PER_SEC":{"schemaItemType":"Unit","label":"ft²/s","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.USCUSTOM","definition":"FT(2)*S(-1)"},"STOKE":{"schemaItemType":"Unit","label":"St","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"CM(2)*S(-1)"},"CENTISTOKE":{"schemaItemType":"Unit","label":"cSt","phenomenon":"Units.KINEMATIC_VISCOSITY","unitSystem":"Units.METRIC","definition":"MM(2)*S(-1)"},"CUB_M":{"schemaItemType":"Unit","label":"m³","phenomenon":"Units.VOLUME","unitSystem":"Units.SI","definition":"M(3)"},"CUB_UM":{"schemaItemType":"Unit","label":"um³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"UM(3)"},"CUB_MM":{"schemaItemType":"Unit","label":"mm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"MM(3)"},"CUB_CM":{"schemaItemType":"Unit","label":"cm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"CM(3)"},"CUB_DM":{"schemaItemType":"Unit","label":"dm³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"DM(3)"},"CUB_KM":{"schemaItemType":"Unit","label":"km³","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"KM(3)"},"LITRE":{"schemaItemType":"Unit","label":"L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"CUB_DM"},"THOUSAND_LITRE":{"schemaItemType":"Unit","label":"thousand L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[KILO]*LITRE"},"MILLION_LITRE":{"schemaItemType":"Unit","label":"million L","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MEGA]*LITRE"},"MILLILITRE":{"schemaItemType":"Unit","label":"mL","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MILLI]*LITRE"},"MICROLITRE":{"schemaItemType":"Unit","label":"µliter","phenomenon":"Units.VOLUME","unitSystem":"Units.METRIC","definition":"[MICRO]*LITRE"},"CUB_IN":{"schemaItemType":"Unit","label":"in³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"IN(3)"},"CUB_FT":{"schemaItemType":"Unit","label":"ft³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"FT(3)"},"CUB_YRD":{"schemaItemType":"Unit","label":"yd³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"YRD(3)"},"CUB_MILE":{"schemaItemType":"Unit","label":"mile³","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"MILE(3)"},"ACRE_IN":{"schemaItemType":"Unit","label":"acre·in","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"ACRE*IN"},"ACRE_FT":{"schemaItemType":"Unit","label":"acre·ft","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"ACRE*FT"},"GALLON":{"schemaItemType":"Unit","label":"gal","description":"Exact, http://www.nist.gov/pml/wmd/pubs/upload/hb44-15-web-final.pdf, Appendix C. Section 4, Page C-11","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"IN(3)","numerator":231},"THOUSAND_GALLON":{"schemaItemType":"Unit","label":"thousand gal","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"[KILO]*GALLON"},"MILLION_GALLON":{"schemaItemType":"Unit","label":"million gal","phenomenon":"Units.VOLUME","unitSystem":"Units.USCUSTOM","definition":"[MEGA]*GALLON"},"CUB_US_SURVEY_IN":{"schemaItemType":"Unit","label":"in³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_IN(3)"},"CUB_US_SURVEY_FT":{"schemaItemType":"Unit","label":"ft³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_FT(3)"},"CUB_US_SURVEY_YRD":{"schemaItemType":"Unit","label":"yrd³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_YRD(3)"},"CUB_US_SURVEY_MILE":{"schemaItemType":"Unit","label":"mile³ (US Survey)","phenomenon":"Units.VOLUME","unitSystem":"Units.USSURVEY","definition":"US_SURVEY_MILE(3)"},"GALLON_IMPERIAL":{"schemaItemType":"Unit","label":"gal (imp)","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.","phenomenon":"Units.VOLUME","unitSystem":"Units.IMPERIAL","definition":"LITRE","numerator":4.54609},"CUB_M_PER_CUB_M":{"schemaItemType":"Unit","label":"m³/m³","phenomenon":"Units.VOLUME_RATIO","unitSystem":"Units.SI","definition":"M(3)*M(-3)"},"LITRE_PER_LITRE":{"schemaItemType":"Unit","label":"liter/liter","phenomenon":"Units.VOLUME_RATIO","unitSystem":"Units.METRIC","definition":"LITRE*LITRE(-1)"},"CUB_M_PER_KG":{"schemaItemType":"Unit","label":"m³/kg","phenomenon":"Units.SPECIFIC_VOLUME","unitSystem":"Units.SI","definition":"M(3)*KG(-1)"},"CUB_FT_PER_LBM":{"schemaItemType":"Unit","label":"ft³/lm","phenomenon":"Units.SPECIFIC_VOLUME","unitSystem":"Units.USCUSTOM","definition":"FT(3)*LBM(-1)"},"CUB_M_PER_M":{"schemaItemType":"Unit","label":"m³/m","phenomenon":"Units.VOLUME_PER_LENGTH","unitSystem":"Units.SI","definition":"M(3)*M(-1)"},"CUB_FT_PER_FT":{"schemaItemType":"Unit","label":"ft³/ft","phenomenon":"Units.VOLUME_PER_LENGTH","unitSystem":"Units.USCUSTOM","definition":"FT(3)*FT(-1)"},"M_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"m⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.SI","definition":"M(6)"},"MM_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"mm⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.METRIC","definition":"MM(6)"},"CM_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"cm⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.METRIC","definition":"CM(6)"},"IN_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"in⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"IN(6)"},"FT_TO_THE_SIXTH":{"schemaItemType":"Unit","label":"ft⁶","phenomenon":"Units.TORSIONAL_WARPING_CONSTANT","unitSystem":"Units.USCUSTOM","definition":"FT(6)"},"VA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.SI","definition":"VOLT*A"},"KVA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.METRIC","definition":"[KILO]*VA"},"MVA":{"schemaItemType":"Unit","phenomenon":"Units.APPARENT_POWER","unitSystem":"Units.METRIC","definition":"[MEGA]*VA"},"M":{"schemaItemType":"Unit","label":"m","phenomenon":"Units.LENGTH","unitSystem":"Units.SI","definition":"M"},"KG":{"schemaItemType":"Unit","label":"kg","phenomenon":"Units.MASS","unitSystem":"Units.SI","definition":"KG"},"S":{"schemaItemType":"Unit","label":"s","phenomenon":"Units.TIME","unitSystem":"Units.SI","definition":"S"},"K":{"schemaItemType":"Unit","phenomenon":"Units.TEMPERATURE","unitSystem":"Units.SI","definition":"K"},"DELTA_KELVIN":{"schemaItemType":"Unit","label":"ΔK","phenomenon":"Units.TEMPERATURE_CHANGE","unitSystem":"Units.SI","definition":"DELTA_KELVIN"},"A":{"schemaItemType":"Unit","phenomenon":"Units.CURRENT","unitSystem":"Units.SI","definition":"A"},"MOL":{"schemaItemType":"Unit","label":"mol","description":"Where mol is the SI gram mol or gmol.","phenomenon":"Units.MOLE","unitSystem":"Units.SI","definition":"MOL"},"CD":{"schemaItemType":"Unit","label":"cd","phenomenon":"Units.LUMINOSITY","unitSystem":"Units.SI","definition":"CD"},"RAD":{"schemaItemType":"Unit","label":"rad","phenomenon":"Units.ANGLE","unitSystem":"Units.SI","definition":"RAD"},"HORIZONTAL_DIR_RAD":{"schemaItemType":"Unit","label":"rad","phenomenon":"Units.HORIZONTAL_DIRECTION","unitSystem":"Units.SI","definition":"HORIZONTAL_DIR_RAD"},"STERAD":{"schemaItemType":"Unit","label":"sterad","phenomenon":"Units.SOLIDANGLE","unitSystem":"Units.SI","definition":"STERAD"},"US_DOLLAR":{"schemaItemType":"Unit","label":"$","phenomenon":"Units.CURRENCY","unitSystem":"Units.FINANCE","definition":"US_DOLLAR"},"MONETARY_UNIT":{"schemaItemType":"Unit","label":"¤","description":"For money of an unspecified denomination","phenomenon":"Units.CURRENCY","unitSystem":"Units.FINANCE","definition":"MONETARY_UNIT"},"PERSON":{"schemaItemType":"Unit","label":"person","phenomenon":"Units.CAPITA","unitSystem":"Units.SI","definition":"PERSON"},"ONE":{"schemaItemType":"Unit","label":"one","phenomenon":"Units.NUMBER","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"COEFFICIENT":{"schemaItemType":"Unit","label":"coefficient","description":"For unitless coefficients","phenomenon":"Units.NUMBER","unitSystem":"Units.INTERNATIONAL","definition":"ONE"},"OHM":{"schemaItemType":"Unit","label":"Ω","phenomenon":"Units.ELECTRICAL_RESISTANCE","unitSystem":"Units.SI","definition":"VOLT*A(-1)"},"KOHM":{"schemaItemType":"Unit","label":"kΩ","phenomenon":"Units.ELECTRICAL_RESISTANCE","unitSystem":"Units.METRIC","definition":"[KILO]*OHM"},"OHM_M":{"schemaItemType":"Unit","label":"Ω·m","phenomenon":"Units.ELECTRICAL_RESISTIVITY","unitSystem":"Units.SI","definition":"OHM*M"},"M_PER_REVOLUTION":{"schemaItemType":"Unit","label":"m/r","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.INTERNATIONAL","definition":"M*REVOLUTION(-1)"},"M_PER_RAD":{"schemaItemType":"Unit","label":"m/rad","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.SI","definition":"M*RAD(-1)"},"IN_PER_DEGREE":{"schemaItemType":"Unit","label":"in/degree","phenomenon":"Units.THREAD_PITCH","unitSystem":"Units.USCUSTOM","definition":"IN*ARC_DEG(-1)"},"J_PER_K":{"schemaItemType":"Unit","label":"J/K","phenomenon":"Units.ENTROPY","unitSystem":"Units.SI","definition":"J*DELTA_KELVIN(-1)"},"KJ_PER_K":{"schemaItemType":"Unit","label":"KJ/K","phenomenon":"Units.ENTROPY","unitSystem":"Units.METRIC","definition":"[KILO]*J*DELTA_KELVIN(-1)"},"BTU_PER_FAHRENHEIT":{"schemaItemType":"Unit","label":"Btu/°F","description":"Exact, See http://physics.nist.gov/cuu/pdf/sp811.pdf Appendix B.8, page 46.","phenomenon":"Units.ENTROPY","unitSystem":"Units.USCUSTOM","definition":"BTU*DELTA_FAHRENHEIT(-1)"},"LUMEN_PER_W":{"schemaItemType":"Unit","label":"lm/W","phenomenon":"Units.LUMINOUS_EFFICACY","unitSystem":"Units.SI","definition":"LUMEN*W(-1)"},"INVERSE_N":{"schemaItemType":"Unit","label":"1/N","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.SI","definition":"N(-1)"},"INVERSE_KN":{"schemaItemType":"Unit","label":"1/kN","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.METRIC","definition":"KN(-1)"},"INVERSE_KPF":{"schemaItemType":"Unit","label":"1/kpf","phenomenon":"Units.MOMENT_DISPLAY_SCALE","unitSystem":"Units.USCUSTOM","definition":"KPF(-1)"},"M_PER_N":{"schemaItemType":"Unit","label":"m/N","phenomenon":"Units.FORCE_DISPLAY_SCALE","unitSystem":"Units.SI","definition":"N_PER_M(-1)"},"M_PER_KN":{"schemaItemType":"Unit","label":"m/kN","phenomenon":"Units.FORCE_DISPLAY_SCALE","unitSystem":"Units.METRIC","definition":"KN_PER_M(-1)"}}}');
370662
370965
 
370663
370966
  /***/ },
370664
370967