@itwin/ecschema-rpcinterface-tests 5.14.0-dev.20 → 5.14.0-dev.22
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.
|
@@ -28396,7 +28396,7 @@ var QueryParamType;
|
|
|
28396
28396
|
* @see
|
|
28397
28397
|
* - [ECSQL Parameters]($docs/learning/ECSQL.md#ecsql-parameters)
|
|
28398
28398
|
* - [ECSQL Parameter Types]($docs/learning/ECSQLParameterTypes)
|
|
28399
|
-
* - [ECSQL Code Examples]($docs/learning/
|
|
28399
|
+
* - [ECSQL Code Examples]($docs/learning/ECSQLCodeExamples#parameter-bindings)
|
|
28400
28400
|
*
|
|
28401
28401
|
* @public
|
|
28402
28402
|
*/
|
|
@@ -30756,7 +30756,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30756
30756
|
* There are three primary ways to interact with and read the results:
|
|
30757
30757
|
* - Stream them using ECSqlReader as an asynchronous iterator.
|
|
30758
30758
|
* - Iterator over them manually using [[ECSqlReader.step]].
|
|
30759
|
-
* - Capture all of the results at once in an array using [[
|
|
30759
|
+
* - Capture all of the results at once in an array using [[ECSqlReader.toArray]].
|
|
30760
30760
|
*
|
|
30761
30761
|
* @see
|
|
30762
30762
|
* - [ECSQL Overview]($docs/learning/backend/ExecutingECSQL)
|
|
@@ -30798,7 +30798,7 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30798
30798
|
this.reset(options);
|
|
30799
30799
|
}
|
|
30800
30800
|
/**
|
|
30801
|
-
* @deprecated in 5.6 - will not be removed until after 2027-04-02.
|
|
30801
|
+
* @deprecated in 5.6 - will not be removed until after 2027-04-02. Should not be used. Will be made private in a future release.
|
|
30802
30802
|
*/
|
|
30803
30803
|
setParams(param) {
|
|
30804
30804
|
if (this._lockArgs) {
|
|
@@ -30807,7 +30807,7 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30807
30807
|
this._param = param.serialize();
|
|
30808
30808
|
}
|
|
30809
30809
|
/**
|
|
30810
|
-
* @deprecated in 5.6 - will not be removed until after 2027-04-02.
|
|
30810
|
+
* @deprecated in 5.6 - will not be removed until after 2027-04-02. Should not be used. Will be made private in a future release.
|
|
30811
30811
|
*/
|
|
30812
30812
|
reset(options) {
|
|
30813
30813
|
if (options) {
|
|
@@ -30831,7 +30831,7 @@ class ECSqlReader extends _ECSqlReaderBase__WEBPACK_IMPORTED_MODULE_1__.ECSqlRea
|
|
|
30831
30831
|
}
|
|
30832
30832
|
/**
|
|
30833
30833
|
* Clear all bindings.
|
|
30834
|
-
* @deprecated in 5.6 - will not be removed until after 2027-04-02.
|
|
30834
|
+
* @deprecated in 5.6 - will not be removed until after 2027-04-02. Should not be used. Will be made private in a future release.
|
|
30835
30835
|
*/
|
|
30836
30836
|
resetBindings() {
|
|
30837
30837
|
this._param = new _ConcurrentQuery__WEBPACK_IMPORTED_MODULE_0__.QueryBinder().serialize();
|
|
@@ -65976,9 +65976,17 @@ class ECName {
|
|
|
65976
65976
|
}
|
|
65977
65977
|
return new ECName(output);
|
|
65978
65978
|
}
|
|
65979
|
+
/** Decode EC name escape sequences without requiring a valid EC identifier.
|
|
65980
|
+
* @internal
|
|
65981
|
+
*/
|
|
65982
|
+
static decode(name) {
|
|
65983
|
+
if (!name.includes("__x"))
|
|
65984
|
+
return name;
|
|
65985
|
+
return name.replace(ecNameReplacerRegex, (_match, hex) => String.fromCharCode(Number.parseInt(hex, 16)));
|
|
65986
|
+
}
|
|
65979
65987
|
/** Decode this ECName, replacing encoded special characters with the characters they encode. */
|
|
65980
65988
|
decode() {
|
|
65981
|
-
return this.name
|
|
65989
|
+
return ECName.decode(this.name);
|
|
65982
65990
|
}
|
|
65983
65991
|
}
|
|
65984
65992
|
|
|
@@ -66667,48 +66675,79 @@ class FormatSetFormatsProvider {
|
|
|
66667
66675
|
this._fallbackProvider = undefined;
|
|
66668
66676
|
}
|
|
66669
66677
|
/**
|
|
66670
|
-
* Retrieves a format definition
|
|
66671
|
-
* If the format is a string reference to another format, it resolves the reference and returns the FormatDefinition.
|
|
66678
|
+
* Retrieves a format definition from the format set, resolving string references and consulting the fallback provider when needed.
|
|
66672
66679
|
*/
|
|
66673
|
-
async getFormat(input, system) {
|
|
66674
|
-
|
|
66675
|
-
|
|
66676
|
-
|
|
66680
|
+
async getFormat(input, system, context) {
|
|
66681
|
+
const lookupContext = extendProviderContext(context, this);
|
|
66682
|
+
if (!lookupContext)
|
|
66683
|
+
return undefined;
|
|
66684
|
+
const name = normalizeFormatName(input);
|
|
66677
66685
|
const format = this._formatSet.formats[name];
|
|
66678
66686
|
if (format !== undefined) {
|
|
66679
|
-
|
|
66680
|
-
|
|
66681
|
-
return this.resolveReference(format, undefined, system);
|
|
66682
|
-
}
|
|
66687
|
+
if (typeof format === "string")
|
|
66688
|
+
return this.resolveReference(format, new Set(), system, lookupContext);
|
|
66683
66689
|
return format;
|
|
66684
66690
|
}
|
|
66685
|
-
|
|
66686
|
-
|
|
66687
|
-
|
|
66691
|
+
return this.getFormatFromFallback(name, system, lookupContext);
|
|
66692
|
+
}
|
|
66693
|
+
async getFormatFromFallback(name, system, context) {
|
|
66694
|
+
const fallbackProvider = this._fallbackProvider;
|
|
66695
|
+
if (!fallbackProvider)
|
|
66696
|
+
return undefined;
|
|
66697
|
+
return fallbackProvider.getFormat(name, system, context);
|
|
66698
|
+
}
|
|
66699
|
+
/**
|
|
66700
|
+
* Retrieves a format definition from the format set without awaiting a provider. String references are resolved
|
|
66701
|
+
* locally; a fallback is used only when it implements `SyncFormatsProvider`.
|
|
66702
|
+
*/
|
|
66703
|
+
getFormatSync(input, system, context) {
|
|
66704
|
+
const lookupContext = extendProviderContext(context, this);
|
|
66705
|
+
if (!lookupContext)
|
|
66706
|
+
return undefined;
|
|
66707
|
+
const name = normalizeFormatName(input);
|
|
66708
|
+
const format = this._formatSet.formats[name];
|
|
66709
|
+
if (format !== undefined) {
|
|
66710
|
+
if (typeof format === "string")
|
|
66711
|
+
return this.resolveReferenceSync(format, new Set(), system, lookupContext);
|
|
66712
|
+
return format;
|
|
66713
|
+
}
|
|
66714
|
+
return this.getFormatSyncFromFallback(name, system, lookupContext);
|
|
66715
|
+
}
|
|
66716
|
+
getFormatSyncFromFallback(name, system, context) {
|
|
66717
|
+
const fallbackProvider = this._fallbackProvider;
|
|
66718
|
+
return typeof fallbackProvider?.getFormatSync === "function" ? fallbackProvider.getFormatSync(name, system, context) : undefined;
|
|
66688
66719
|
}
|
|
66689
66720
|
/**
|
|
66690
66721
|
* Resolves a string reference to its FormatDefinition, following chains of references.
|
|
66691
66722
|
* @param reference The string reference to resolve
|
|
66692
66723
|
* @param visited Set of visited references to detect circular references
|
|
66693
66724
|
* @param system Optional unit system override
|
|
66725
|
+
* @param context Lookup context to forward to the fallback provider
|
|
66694
66726
|
*/
|
|
66695
|
-
async resolveReference(reference, visited
|
|
66727
|
+
async resolveReference(reference, visited, system, context) {
|
|
66696
66728
|
// Prevent infinite loops from circular references
|
|
66697
66729
|
if (visited.has(reference)) {
|
|
66698
66730
|
return undefined;
|
|
66699
66731
|
}
|
|
66700
66732
|
visited.add(reference);
|
|
66701
66733
|
const format = this._formatSet.formats[reference];
|
|
66702
|
-
if (format === undefined)
|
|
66703
|
-
|
|
66704
|
-
|
|
66705
|
-
|
|
66734
|
+
if (format === undefined)
|
|
66735
|
+
return this.getFormatFromFallback(reference, system, context);
|
|
66736
|
+
if (typeof format === "string")
|
|
66737
|
+
return this.resolveReference(format, visited, system, context);
|
|
66738
|
+
return format;
|
|
66739
|
+
}
|
|
66740
|
+
resolveReferenceSync(reference, visited, system, context) {
|
|
66741
|
+
// Prevent infinite loops from circular references
|
|
66742
|
+
if (visited.has(reference)) {
|
|
66706
66743
|
return undefined;
|
|
66707
66744
|
}
|
|
66708
|
-
|
|
66709
|
-
|
|
66710
|
-
|
|
66711
|
-
|
|
66745
|
+
visited.add(reference);
|
|
66746
|
+
const format = this._formatSet.formats[reference];
|
|
66747
|
+
if (format === undefined)
|
|
66748
|
+
return this.getFormatSyncFromFallback(reference, system, context);
|
|
66749
|
+
if (typeof format === "string")
|
|
66750
|
+
return this.resolveReferenceSync(format, visited, system, context);
|
|
66712
66751
|
return format;
|
|
66713
66752
|
}
|
|
66714
66753
|
/**
|
|
@@ -66744,6 +66783,18 @@ class FormatSetFormatsProvider {
|
|
|
66744
66783
|
return referencingFormats;
|
|
66745
66784
|
}
|
|
66746
66785
|
}
|
|
66786
|
+
function extendProviderContext(context, provider) {
|
|
66787
|
+
const providerChain = new Set(context?.providerChain);
|
|
66788
|
+
if (providerChain.has(provider))
|
|
66789
|
+
return undefined;
|
|
66790
|
+
providerChain.add(provider);
|
|
66791
|
+
return { providerChain };
|
|
66792
|
+
}
|
|
66793
|
+
function normalizeFormatName(input) {
|
|
66794
|
+
// Convert node-addon names from `schemaName:schemaItemName` to the dot-separated key used by FormatSet.
|
|
66795
|
+
const [schemaName, itemName] = _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_1__.SchemaItem.parseFullName(input);
|
|
66796
|
+
return schemaName === "" ? itemName : `${schemaName}.${itemName}`;
|
|
66797
|
+
}
|
|
66747
66798
|
|
|
66748
66799
|
|
|
66749
66800
|
/***/ },
|
|
@@ -66761,11 +66812,16 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
66761
66812
|
/* harmony export */ });
|
|
66762
66813
|
/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Context */ "../../core/ecschema-metadata/lib/esm/Context.js");
|
|
66763
66814
|
/* harmony import */ var _SchemaKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SchemaKey */ "../../core/ecschema-metadata/lib/esm/SchemaKey.js");
|
|
66764
|
-
/* harmony import */ var
|
|
66765
|
-
/* harmony import */ var
|
|
66766
|
-
/* harmony import */ var
|
|
66767
|
-
/* harmony import */ var
|
|
66815
|
+
/* harmony import */ var _ECObjects__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ECObjects */ "../../core/ecschema-metadata/lib/esm/ECObjects.js");
|
|
66816
|
+
/* harmony import */ var _Exception__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Exception */ "../../core/ecschema-metadata/lib/esm/Exception.js");
|
|
66817
|
+
/* harmony import */ var _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Metadata/SchemaItem */ "../../core/ecschema-metadata/lib/esm/Metadata/SchemaItem.js");
|
|
66818
|
+
/* harmony import */ var _Metadata_Format__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Metadata/Format */ "../../core/ecschema-metadata/lib/esm/Metadata/Format.js");
|
|
66768
66819
|
/* harmony import */ var _Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Metadata/OverrideFormat */ "../../core/ecschema-metadata/lib/esm/Metadata/OverrideFormat.js");
|
|
66820
|
+
/* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
|
|
66821
|
+
/* harmony import */ var _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Metadata/KindOfQuantity */ "../../core/ecschema-metadata/lib/esm/Metadata/KindOfQuantity.js");
|
|
66822
|
+
/* harmony import */ var _Metadata_Unit__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Metadata/Unit */ "../../core/ecschema-metadata/lib/esm/Metadata/Unit.js");
|
|
66823
|
+
/* harmony import */ var _Metadata_InvertedUnit__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Metadata/InvertedUnit */ "../../core/ecschema-metadata/lib/esm/Metadata/InvertedUnit.js");
|
|
66824
|
+
/* harmony import */ var _Metadata_UnitSystem__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Metadata/UnitSystem */ "../../core/ecschema-metadata/lib/esm/Metadata/UnitSystem.js");
|
|
66769
66825
|
/*---------------------------------------------------------------------------------------------
|
|
66770
66826
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
66771
66827
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -66780,6 +66836,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
66780
66836
|
|
|
66781
66837
|
|
|
66782
66838
|
|
|
66839
|
+
|
|
66840
|
+
|
|
66841
|
+
|
|
66842
|
+
|
|
66843
|
+
|
|
66783
66844
|
const loggerCategory = "SchemaFormatsProvider";
|
|
66784
66845
|
/**
|
|
66785
66846
|
* Provides default formats and kind of quantities from a given SchemaContext or SchemaLocater.
|
|
@@ -66789,7 +66850,7 @@ class SchemaFormatsProvider {
|
|
|
66789
66850
|
_context;
|
|
66790
66851
|
_unitSystem;
|
|
66791
66852
|
_formatsRetrieved = new Set();
|
|
66792
|
-
onFormatsChanged = new
|
|
66853
|
+
onFormatsChanged = new _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.BeEvent();
|
|
66793
66854
|
/**
|
|
66794
66855
|
*
|
|
66795
66856
|
* @param contextOrLocater The SchemaContext or a different ISchemaLocater implementation used to retrieve the schema. The SchemaContext
|
|
@@ -66836,71 +66897,58 @@ class SchemaFormatsProvider {
|
|
|
66836
66897
|
async getKindOfQuantityFormatFromSchema(itemKey, systemOverride) {
|
|
66837
66898
|
let kindOfQuantity;
|
|
66838
66899
|
try {
|
|
66839
|
-
kindOfQuantity = await this._context.getSchemaItem(itemKey,
|
|
66900
|
+
kindOfQuantity = await this._context.getSchemaItem(itemKey, _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_8__.KindOfQuantity);
|
|
66840
66901
|
}
|
|
66841
66902
|
catch {
|
|
66842
|
-
|
|
66903
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.Logger.logError(loggerCategory, `Failed to find KindOfQuantity ${itemKey.fullName}`);
|
|
66843
66904
|
return undefined;
|
|
66844
66905
|
}
|
|
66845
|
-
if (!kindOfQuantity)
|
|
66906
|
+
if (!kindOfQuantity)
|
|
66846
66907
|
return undefined;
|
|
66847
|
-
|
|
66848
|
-
|
|
66849
|
-
|
|
66850
|
-
|
|
66851
|
-
|
|
66852
|
-
|
|
66853
|
-
|
|
66854
|
-
|
|
66855
|
-
|
|
66856
|
-
|
|
66857
|
-
|
|
66858
|
-
|
|
66859
|
-
|
|
66860
|
-
|
|
66861
|
-
|
|
66862
|
-
|
|
66863
|
-
const props = (0,_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.getFormatProps)(format);
|
|
66864
|
-
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
66865
|
-
}
|
|
66866
|
-
}
|
|
66867
|
-
}
|
|
66868
|
-
// If no matching presentation format was found, fall back to persistence unit format
|
|
66869
|
-
// only if it matches the requested unit system.
|
|
66870
|
-
const persistenceUnit = await kindOfQuantity.persistenceUnit;
|
|
66871
|
-
const persistenceUnitSystem = await persistenceUnit?.unitSystem;
|
|
66872
|
-
if (persistenceUnit && persistenceUnitSystem && unitSystemMatchers.some((matcher) => matcher(persistenceUnitSystem))) {
|
|
66873
|
-
this._formatsRetrieved.add(itemKey.fullName);
|
|
66874
|
-
const props = getPersistenceUnitFormatProps(persistenceUnit);
|
|
66875
|
-
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
66908
|
+
const props = await this.getKindOfQuantityFormatProps(kindOfQuantity, systemOverride);
|
|
66909
|
+
if (!props)
|
|
66910
|
+
return undefined;
|
|
66911
|
+
this._formatsRetrieved.add(itemKey.fullName);
|
|
66912
|
+
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
66913
|
+
}
|
|
66914
|
+
async getKindOfQuantityFormatProps(kindOfQuantity, systemOverride) {
|
|
66915
|
+
// Cache each unit once per lookup because matchers may revisit it. Lazy formats already resolve only once.
|
|
66916
|
+
const unitCache = new Map();
|
|
66917
|
+
const getUnit = (unit) => {
|
|
66918
|
+
if (!unit)
|
|
66919
|
+
return undefined;
|
|
66920
|
+
let resolved = unitCache.get(unit);
|
|
66921
|
+
if (!resolved) {
|
|
66922
|
+
resolved = resolveUnitAsync(unit);
|
|
66923
|
+
unitCache.set(unit, resolved);
|
|
66876
66924
|
}
|
|
66877
|
-
|
|
66878
|
-
|
|
66879
|
-
|
|
66880
|
-
|
|
66881
|
-
|
|
66882
|
-
|
|
66883
|
-
|
|
66884
|
-
|
|
66925
|
+
return resolved;
|
|
66926
|
+
};
|
|
66927
|
+
for (const candidate of getFormatSelectionCandidates(kindOfQuantity, systemOverride ?? this._unitSystem)) {
|
|
66928
|
+
const format = candidate.type === "persistence" ? undefined : await candidate.format;
|
|
66929
|
+
const unit = candidate.type === "default" ? undefined : await getUnit(candidate.type === "persistence" ? candidate.unit : format?.units?.[0]?.[0]);
|
|
66930
|
+
const props = getFormatPropsForCandidate(candidate, format, unit);
|
|
66931
|
+
if (props)
|
|
66932
|
+
return props;
|
|
66885
66933
|
}
|
|
66886
66934
|
return undefined;
|
|
66887
66935
|
}
|
|
66888
66936
|
/**
|
|
66889
|
-
* Retrieves a
|
|
66890
|
-
*
|
|
66891
|
-
*
|
|
66937
|
+
* Retrieves a format definition from the schema context.
|
|
66938
|
+
*
|
|
66939
|
+
* For a KindOfQuantity with a unit system, matching presentation formats are checked first, followed by the persistence unit and then the default presentation format. Without a unit system, the default presentation format is used.
|
|
66892
66940
|
* @param name The full name of the Format or KindOfQuantity.
|
|
66893
|
-
* @
|
|
66941
|
+
* @param system Optional unit system used to select a KindOfQuantity format.
|
|
66894
66942
|
*/
|
|
66895
66943
|
async getFormat(name, system) {
|
|
66896
|
-
const [schemaName, schemaItemName] =
|
|
66944
|
+
const [schemaName, schemaItemName] = _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_4__.SchemaItem.parseFullName(name);
|
|
66897
66945
|
const schemaKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_1__.SchemaKey(schemaName);
|
|
66898
66946
|
let schema;
|
|
66899
66947
|
try {
|
|
66900
66948
|
schema = await this._context.getSchema(schemaKey);
|
|
66901
66949
|
}
|
|
66902
66950
|
catch {
|
|
66903
|
-
|
|
66951
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.Logger.logError(loggerCategory, `Failed to find schema ${schemaName}`);
|
|
66904
66952
|
return undefined;
|
|
66905
66953
|
}
|
|
66906
66954
|
if (!schema) {
|
|
@@ -66910,10 +66958,10 @@ class SchemaFormatsProvider {
|
|
|
66910
66958
|
if (schema.name === "Formats") {
|
|
66911
66959
|
let format;
|
|
66912
66960
|
try {
|
|
66913
|
-
format = await this._context.getSchemaItem(itemKey,
|
|
66961
|
+
format = await this._context.getSchemaItem(itemKey, _Metadata_Format__WEBPACK_IMPORTED_MODULE_5__.Format);
|
|
66914
66962
|
}
|
|
66915
66963
|
catch {
|
|
66916
|
-
|
|
66964
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_7__.Logger.logError(loggerCategory, `Failed to find Format ${itemKey.fullName}`);
|
|
66917
66965
|
return undefined;
|
|
66918
66966
|
}
|
|
66919
66967
|
if (!format) {
|
|
@@ -66923,11 +66971,138 @@ class SchemaFormatsProvider {
|
|
|
66923
66971
|
}
|
|
66924
66972
|
return this.getKindOfQuantityFormatFromSchema(itemKey, system);
|
|
66925
66973
|
}
|
|
66974
|
+
/**
|
|
66975
|
+
* Retrieves a format definition using only schema metadata already loaded in the context.
|
|
66976
|
+
* It follows the same selection order as `getFormat` but never asks a locater to load a schema. Returns `undefined` when required metadata is not cached.
|
|
66977
|
+
* Unlike `getFormat`, which logs lookup errors and returns `undefined`, this method treats only a schema that is still loading as a cache miss and rethrows other errors.
|
|
66978
|
+
*/
|
|
66979
|
+
getFormatSync(name, system) {
|
|
66980
|
+
const [schemaName, schemaItemName] = _Metadata_SchemaItem__WEBPACK_IMPORTED_MODULE_4__.SchemaItem.parseFullName(name);
|
|
66981
|
+
const schemaKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_1__.SchemaKey(schemaName);
|
|
66982
|
+
const schema = getCachedSchemaSync(this._context, schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Latest);
|
|
66983
|
+
if (!schema)
|
|
66984
|
+
return undefined;
|
|
66985
|
+
const itemKey = new _SchemaKey__WEBPACK_IMPORTED_MODULE_1__.SchemaItemKey(schemaItemName, schema.schemaKey);
|
|
66986
|
+
if (schema.name === "Formats") {
|
|
66987
|
+
const format = schema.getItemSync(itemKey.name, _Metadata_Format__WEBPACK_IMPORTED_MODULE_5__.Format);
|
|
66988
|
+
return format?.toJSON(true);
|
|
66989
|
+
}
|
|
66990
|
+
return this.getKindOfQuantityFormatFromSchemaSync(itemKey, system);
|
|
66991
|
+
}
|
|
66992
|
+
getKindOfQuantityFormatFromSchemaSync(itemKey, systemOverride) {
|
|
66993
|
+
const schema = getCachedSchemaSync(this._context, itemKey.schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Latest);
|
|
66994
|
+
const kindOfQuantity = schema?.getItemSync(itemKey.name, _Metadata_KindOfQuantity__WEBPACK_IMPORTED_MODULE_8__.KindOfQuantity);
|
|
66995
|
+
if (!kindOfQuantity)
|
|
66996
|
+
return undefined;
|
|
66997
|
+
const props = this.getKindOfQuantityFormatPropsSync(kindOfQuantity, systemOverride);
|
|
66998
|
+
if (!props)
|
|
66999
|
+
return undefined;
|
|
67000
|
+
this._formatsRetrieved.add(itemKey.fullName);
|
|
67001
|
+
return this.convertToFormatDefinition(props, kindOfQuantity);
|
|
67002
|
+
}
|
|
67003
|
+
getKindOfQuantityFormatPropsSync(kindOfQuantity, systemOverride) {
|
|
67004
|
+
const formatCache = new Map();
|
|
67005
|
+
const unitCache = new Map();
|
|
67006
|
+
const getFormat = (format) => {
|
|
67007
|
+
if (!formatCache.has(format))
|
|
67008
|
+
formatCache.set(format, resolveFormatSync(this._context, format));
|
|
67009
|
+
return formatCache.get(format);
|
|
67010
|
+
};
|
|
67011
|
+
const getUnit = (unit) => {
|
|
67012
|
+
if (!unit)
|
|
67013
|
+
return undefined;
|
|
67014
|
+
if (!unitCache.has(unit))
|
|
67015
|
+
unitCache.set(unit, resolveUnitSync(this._context, unit));
|
|
67016
|
+
return unitCache.get(unit);
|
|
67017
|
+
};
|
|
67018
|
+
// A reference that cannot be resolved means metadata is not cached. Stop there: async lookup would resolve it and never reach a later candidate.
|
|
67019
|
+
for (const candidate of getFormatSelectionCandidates(kindOfQuantity, systemOverride ?? this._unitSystem)) {
|
|
67020
|
+
const format = candidate.type === "persistence" ? undefined : getFormat(candidate.format);
|
|
67021
|
+
if (candidate.type !== "persistence" && !format)
|
|
67022
|
+
return undefined;
|
|
67023
|
+
const unitReference = candidate.type === "presentation" ? format?.units?.[0]?.[0] : candidate.type === "persistence" ? candidate.unit : undefined;
|
|
67024
|
+
const unit = getUnit(unitReference);
|
|
67025
|
+
if (unitReference && !unit)
|
|
67026
|
+
return undefined;
|
|
67027
|
+
const props = getFormatPropsForCandidate(candidate, format, unit);
|
|
67028
|
+
if (props)
|
|
67029
|
+
return props;
|
|
67030
|
+
}
|
|
67031
|
+
return undefined;
|
|
67032
|
+
}
|
|
67033
|
+
}
|
|
67034
|
+
/**
|
|
67035
|
+
* Produces candidates in lookup order: presentation formats by unit-system priority, then the persistence unit,
|
|
67036
|
+
* then the default presentation format. The generator defers each candidate until the lookup reaches it.
|
|
67037
|
+
*/
|
|
67038
|
+
function* getFormatSelectionCandidates(kindOfQuantity, effectiveSystem) {
|
|
67039
|
+
if (effectiveSystem) {
|
|
67040
|
+
const matchers = getUnitSystemGroupMatchers(effectiveSystem);
|
|
67041
|
+
for (const matcher of matchers) {
|
|
67042
|
+
for (const format of kindOfQuantity.presentationFormats)
|
|
67043
|
+
yield { type: "presentation", format, matcher };
|
|
67044
|
+
}
|
|
67045
|
+
yield { type: "persistence", unit: kindOfQuantity.persistenceUnit, matchers };
|
|
67046
|
+
}
|
|
67047
|
+
const defaultFormat = kindOfQuantity.defaultPresentationFormat;
|
|
67048
|
+
if (defaultFormat)
|
|
67049
|
+
yield { type: "default", format: defaultFormat };
|
|
67050
|
+
}
|
|
67051
|
+
function getFormatPropsForCandidate(candidate, format, unit) {
|
|
67052
|
+
const unitSystemName = unit?.unitSystemName;
|
|
67053
|
+
switch (candidate.type) {
|
|
67054
|
+
case "presentation":
|
|
67055
|
+
return format && unitSystemName && candidate.matcher(unitSystemName) ? (0,_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.getFormatProps)(format) : undefined;
|
|
67056
|
+
case "persistence":
|
|
67057
|
+
return unit && unitSystemName && candidate.matchers.some((matcher) => matcher(unitSystemName)) ? getPersistenceUnitFormatProps(unit.unit) : undefined;
|
|
67058
|
+
case "default":
|
|
67059
|
+
return format ? (0,_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.getFormatProps)(format) : undefined;
|
|
67060
|
+
}
|
|
67061
|
+
}
|
|
67062
|
+
function resolveFormatSync(context, format) {
|
|
67063
|
+
if (_Metadata_OverrideFormat__WEBPACK_IMPORTED_MODULE_6__.OverrideFormat.isOverrideFormat(format))
|
|
67064
|
+
return format;
|
|
67065
|
+
const schema = getCachedSchemaSync(context, format.schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Exact);
|
|
67066
|
+
return schema?.getItemSync(format.name, _Metadata_Format__WEBPACK_IMPORTED_MODULE_5__.Format);
|
|
67067
|
+
}
|
|
67068
|
+
async function resolveUnitAsync(unit) {
|
|
67069
|
+
const resolvedUnit = await unit;
|
|
67070
|
+
const unitSystem = await resolvedUnit.unitSystem;
|
|
67071
|
+
return { unit: resolvedUnit, unitSystemName: unitSystem?.name };
|
|
67072
|
+
}
|
|
67073
|
+
function resolveUnitSync(context, unit) {
|
|
67074
|
+
const resolvedUnit = getLoadedUnitSync(context, unit);
|
|
67075
|
+
if (!resolvedUnit)
|
|
67076
|
+
return undefined;
|
|
67077
|
+
const unitSystem = resolvedUnit.unitSystem;
|
|
67078
|
+
if (!unitSystem)
|
|
67079
|
+
return { unit: resolvedUnit };
|
|
67080
|
+
const unitSystemName = getCachedSchemaSync(context, unitSystem.schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Exact)?.getItemSync(unitSystem.name, _Metadata_UnitSystem__WEBPACK_IMPORTED_MODULE_11__.UnitSystem)?.name;
|
|
67081
|
+
return unitSystemName ? { unit: resolvedUnit, unitSystemName } : undefined;
|
|
67082
|
+
}
|
|
67083
|
+
/**
|
|
67084
|
+
* Name-only lookups use `SchemaMatchType.Latest`. References use `SchemaMatchType.Exact` because they carry the version
|
|
67085
|
+
* the loaded item resolved; matching by name alone could return an item from a different cached version.
|
|
67086
|
+
*/
|
|
67087
|
+
function getCachedSchemaSync(context, schemaKey, matchType) {
|
|
67088
|
+
try {
|
|
67089
|
+
return context.getCachedSchemaSync(schemaKey, matchType);
|
|
67090
|
+
}
|
|
67091
|
+
catch (error) {
|
|
67092
|
+
if (error instanceof _Exception__WEBPACK_IMPORTED_MODULE_3__.ECSchemaError && error.errorNumber === _Exception__WEBPACK_IMPORTED_MODULE_3__.ECSchemaStatus.UnableToLoadSchema)
|
|
67093
|
+
return undefined;
|
|
67094
|
+
throw error;
|
|
67095
|
+
}
|
|
67096
|
+
}
|
|
67097
|
+
function getLoadedUnitSync(context, unit) {
|
|
67098
|
+
const schema = getCachedSchemaSync(context, unit.schemaKey, _ECObjects__WEBPACK_IMPORTED_MODULE_2__.SchemaMatchType.Exact);
|
|
67099
|
+
const item = schema?.getItemSync(unit.name);
|
|
67100
|
+
return _Metadata_Unit__WEBPACK_IMPORTED_MODULE_9__.Unit.isUnit(item) || _Metadata_InvertedUnit__WEBPACK_IMPORTED_MODULE_10__.InvertedUnit.isInvertedUnit(item) ? item : undefined;
|
|
66926
67101
|
}
|
|
66927
67102
|
function getUnitSystemGroupMatchers(groupKey) {
|
|
66928
67103
|
function createMatcher(name) {
|
|
66929
67104
|
const names = Array.isArray(name) ? name : [name];
|
|
66930
|
-
return (
|
|
67105
|
+
return (unitSystemName) => names.some((n) => n === unitSystemName.toUpperCase());
|
|
66931
67106
|
}
|
|
66932
67107
|
switch (groupKey) {
|
|
66933
67108
|
case "imperial":
|
|
@@ -75859,15 +76034,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
75859
76034
|
* @module Schema
|
|
75860
76035
|
*/
|
|
75861
76036
|
/** The reference graph of every schema in one iModel - names, versions and reference edges, without
|
|
75862
|
-
*
|
|
75863
|
-
*
|
|
76037
|
+
* schema items. A {@link SchemaViewDataProvider} builds it from ECDbMeta rows via
|
|
76038
|
+
* {@link SchemaManifest.fromRows}. It includes schemas excluded from SchemaView's binary data.
|
|
75864
76039
|
*
|
|
75865
|
-
*
|
|
75866
|
-
* The
|
|
75867
|
-
*
|
|
75868
|
-
* @
|
|
75869
|
-
* and filters the result of {@link SchemaManifest.getSchemaClosure} itself.
|
|
75870
|
-
* @internal
|
|
76040
|
+
* {@link SchemaViewManager} uses this graph to determine which schemas a filtered request needs.
|
|
76041
|
+
* The manifest does not track which schemas are already loaded; the manager filters the result of
|
|
76042
|
+
* {@link SchemaManifest.getSchemaClosure} itself.
|
|
76043
|
+
* @beta
|
|
75871
76044
|
*/
|
|
75872
76045
|
class SchemaManifest {
|
|
75873
76046
|
_entries;
|
|
@@ -75883,7 +76056,7 @@ class SchemaManifest {
|
|
|
75883
76056
|
/** Build a manifest from raw ECDbMeta query rows, so a `SchemaViewDataProvider` only has to run
|
|
75884
76057
|
* the two queries and hand the rows over. Reference rows whose endpoints are unknown or
|
|
75885
76058
|
* self-referential are skipped; that cannot happen for a well-formed iModel.
|
|
75886
|
-
* @
|
|
76059
|
+
* @beta
|
|
75887
76060
|
*/
|
|
75888
76061
|
static fromRows(schemaRows, referenceRows) {
|
|
75889
76062
|
const entries = [];
|
|
@@ -75922,8 +76095,7 @@ class SchemaManifest {
|
|
|
75922
76095
|
return this._byLowerName.get(name.toLowerCase());
|
|
75923
76096
|
}
|
|
75924
76097
|
/** The transitive reference closure of the requested schemas, as a flat, duplicate-free list of
|
|
75925
|
-
* names: the full set
|
|
75926
|
-
* {@link SchemaManifest.sortInDependencyOrder} on the result when a load order is needed.
|
|
76098
|
+
* names: the full set to request in a standalone fragment. The order is unspecified.
|
|
75927
76099
|
* @note Requested names the iModel does not contain are ignored; check
|
|
75928
76100
|
* {@link SchemaManifest.findByName} first to detect them.
|
|
75929
76101
|
*/
|
|
@@ -75994,6 +76166,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
75994
76166
|
/* harmony export */ });
|
|
75995
76167
|
/* harmony import */ var _SchemaViewInterfaces__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SchemaViewInterfaces */ "../../core/ecschema-metadata/lib/esm/SchemaView/SchemaViewInterfaces.js");
|
|
75996
76168
|
/* harmony import */ var _SchemaViewBinaryReader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SchemaViewBinaryReader */ "../../core/ecschema-metadata/lib/esm/SchemaView/SchemaViewBinaryReader.js");
|
|
76169
|
+
/* harmony import */ var _ECName__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ECName */ "../../core/ecschema-metadata/lib/esm/ECName.js");
|
|
75997
76170
|
/*---------------------------------------------------------------------------------------------
|
|
75998
76171
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
75999
76172
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -76003,6 +76176,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
76003
76176
|
*/
|
|
76004
76177
|
|
|
76005
76178
|
|
|
76179
|
+
|
|
76006
76180
|
// Module-local symbol used as the storage key on SchemaView instances. Mirrors the pattern in
|
|
76007
76181
|
// core-backend/src/internal/Symbols.ts (e.g. `_nativeDb` on IModelDb): the data is reachable
|
|
76008
76182
|
// only by code in this module, since the symbol is not exported and not registered globally.
|
|
@@ -76015,8 +76189,9 @@ const _storage = Symbol("SchemaView.storage");
|
|
|
76015
76189
|
* stateless wrappers that hold a reference to this view plus an index. They allocate nothing
|
|
76016
76190
|
* and cache nothing.
|
|
76017
76191
|
*
|
|
76018
|
-
*
|
|
76019
|
-
*
|
|
76192
|
+
* Use {@link SchemaViewManager} to load schemas incrementally into one view, or parse a standalone
|
|
76193
|
+
* binary blob via {@link (SchemaView:class).fromBinary}. Consumers cannot modify the metadata; a manager
|
|
76194
|
+
* can extend its view with additional schemas while previously obtained view objects remain valid.
|
|
76020
76195
|
* @beta
|
|
76021
76196
|
*/
|
|
76022
76197
|
class SchemaView {
|
|
@@ -76101,7 +76276,8 @@ class SchemaView {
|
|
|
76101
76276
|
return idx !== undefined ? new SchemaView.PropertyCategory(this, idx) : undefined;
|
|
76102
76277
|
}
|
|
76103
76278
|
/** Parse a binary blob into a SchemaView. Synchronous.
|
|
76104
|
-
* @param blob - The binary blob from `PRAGMA schema_view
|
|
76279
|
+
* @param blob - The binary blob from `PRAGMA schema_view`, or a standalone `PRAGMA schema_view_fragment`
|
|
76280
|
+
* containing the requested schemas and their references.
|
|
76105
76281
|
* @param schemaToken - Optional cache-invalidation token (schema name+version hash; see `PRAGMA checksum(schema_token)`).
|
|
76106
76282
|
* @beta
|
|
76107
76283
|
*/
|
|
@@ -76306,9 +76482,10 @@ class SchemaView {
|
|
|
76306
76482
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76307
76483
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
76308
76484
|
get alias() { return this._ctx[_storage].strings[this._data.aliasStringIdx]; }
|
|
76485
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76309
76486
|
get label() {
|
|
76310
76487
|
const sid = this._data.labelStringIdx;
|
|
76311
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
76488
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76312
76489
|
}
|
|
76313
76490
|
get description() {
|
|
76314
76491
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76402,9 +76579,10 @@ class SchemaView {
|
|
|
76402
76579
|
*/
|
|
76403
76580
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76404
76581
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
76582
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76405
76583
|
get label() {
|
|
76406
76584
|
const sid = this._data.labelStringIdx;
|
|
76407
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
76585
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76408
76586
|
}
|
|
76409
76587
|
get description() {
|
|
76410
76588
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76513,7 +76691,8 @@ class SchemaView {
|
|
|
76513
76691
|
return true;
|
|
76514
76692
|
return this._ctx.getTransitiveBases(this.idx).has(targetIdx);
|
|
76515
76693
|
}
|
|
76516
|
-
/** Direct derived classes
|
|
76694
|
+
/** Direct derived classes among the currently loaded schemas. A partial view may omit derived
|
|
76695
|
+
* classes from other schemas. Expensive on first call (builds reverse map across all loaded classes). */
|
|
76517
76696
|
get derivedClasses() {
|
|
76518
76697
|
const map = this._ctx.buildDerivedClassMap();
|
|
76519
76698
|
const indices = map.get(this.idx);
|
|
@@ -76608,11 +76787,11 @@ class SchemaView {
|
|
|
76608
76787
|
*/
|
|
76609
76788
|
get ecInstanceId() { return this._ref.ecInstanceId; }
|
|
76610
76789
|
get name() { return this._ctx[_storage].strings[this._def.nameStringIdx]; }
|
|
76611
|
-
/** Display label
|
|
76790
|
+
/** Display label, or the decoded property name when the label is absent or empty.
|
|
76612
76791
|
* Labels are stored per-reference (not per-definition) because EC allows class overrides. */
|
|
76613
76792
|
get label() {
|
|
76614
76793
|
const labelStringIdx = this._ref.labelStringIdx;
|
|
76615
|
-
return labelStringIdx !== 0 ? this._ctx[_storage].strings[labelStringIdx] : this.name;
|
|
76794
|
+
return labelStringIdx !== 0 ? this._ctx[_storage].strings[labelStringIdx] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76616
76795
|
}
|
|
76617
76796
|
get description() {
|
|
76618
76797
|
const sid = this._def.descriptionStringIdx;
|
|
@@ -76791,9 +76970,10 @@ class SchemaView {
|
|
|
76791
76970
|
*/
|
|
76792
76971
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76793
76972
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
76973
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76794
76974
|
get label() {
|
|
76795
76975
|
const sid = this._data.labelStringIdx;
|
|
76796
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
76976
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76797
76977
|
}
|
|
76798
76978
|
get description() {
|
|
76799
76979
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76848,9 +77028,10 @@ class SchemaView {
|
|
|
76848
77028
|
}
|
|
76849
77029
|
get _data() { return this._ctx[_storage].enumerators[this.idx]; }
|
|
76850
77030
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
77031
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76851
77032
|
get label() {
|
|
76852
77033
|
const sid = this._data.labelStringIdx;
|
|
76853
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
77034
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76854
77035
|
}
|
|
76855
77036
|
get description() {
|
|
76856
77037
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76897,9 +77078,10 @@ class SchemaView {
|
|
|
76897
77078
|
*/
|
|
76898
77079
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76899
77080
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
77081
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76900
77082
|
get label() {
|
|
76901
77083
|
const sid = this._data.labelStringIdx;
|
|
76902
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
77084
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76903
77085
|
}
|
|
76904
77086
|
get description() {
|
|
76905
77087
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -76974,9 +77156,10 @@ class SchemaView {
|
|
|
76974
77156
|
*/
|
|
76975
77157
|
get ecInstanceId() { return this._data.ecInstanceId; }
|
|
76976
77158
|
get name() { return this._ctx[_storage].strings[this._data.nameStringIdx]; }
|
|
77159
|
+
/** Display label, or the decoded name when the label is absent or empty. */
|
|
76977
77160
|
get label() {
|
|
76978
77161
|
const sid = this._data.labelStringIdx;
|
|
76979
|
-
return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;
|
|
77162
|
+
return sid !== 0 ? this._ctx[_storage].strings[sid] : _ECName__WEBPACK_IMPORTED_MODULE_2__.ECName.decode(this.name);
|
|
76980
77163
|
}
|
|
76981
77164
|
get description() {
|
|
76982
77165
|
const sid = this._data.descriptionStringIdx;
|
|
@@ -78042,10 +78225,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
78042
78225
|
*/
|
|
78043
78226
|
|
|
78044
78227
|
/** Owns the lifetime of one iModel's {@link (SchemaView:class)}: lazy loading, incremental (filtered)
|
|
78045
|
-
*
|
|
78046
|
-
*
|
|
78047
|
-
*
|
|
78048
|
-
* @
|
|
78228
|
+
* loading, serialization of concurrent requests, and invalidation. All data access goes through the
|
|
78229
|
+
* supplied {@link SchemaViewDataProvider}.
|
|
78230
|
+
*
|
|
78231
|
+
* Keep one manager per iModel connection. Calls to {@link SchemaViewManager.getSchemaView} reuse
|
|
78232
|
+
* one accumulating view until it is invalidated. The manager does not monitor schema changes;
|
|
78233
|
+
* call {@link SchemaViewManager.reset} after a known change, or await
|
|
78234
|
+
* {@link SchemaViewManager.invalidateIfChanged} after an operation that may have changed schemas.
|
|
78235
|
+
* @beta
|
|
78049
78236
|
*/
|
|
78050
78237
|
class SchemaViewManager {
|
|
78051
78238
|
_dataProvider;
|
|
@@ -78061,9 +78248,9 @@ class SchemaViewManager {
|
|
|
78061
78248
|
constructor(dataProvider) {
|
|
78062
78249
|
this._dataProvider = dataProvider;
|
|
78063
78250
|
}
|
|
78064
|
-
/** Get the schema view, loading
|
|
78065
|
-
*
|
|
78066
|
-
*
|
|
78251
|
+
/** Get the schema view, loading the requested schemas and their references that are not present
|
|
78252
|
+
* yet. Omitting the schema filter loads every schema. Calls accumulate into the same view until
|
|
78253
|
+
* it is invalidated. See {@link GetSchemaViewArgs} for filtering semantics.
|
|
78067
78254
|
*/
|
|
78068
78255
|
async getSchemaView(args) {
|
|
78069
78256
|
const previous = this._viewPromise;
|
|
@@ -78111,10 +78298,6 @@ class SchemaViewManager {
|
|
|
78111
78298
|
}
|
|
78112
78299
|
if (existing === undefined)
|
|
78113
78300
|
return undefined;
|
|
78114
|
-
// A view without a token (e.g. built directly from a SchemaViewBuilder) cannot be verified by
|
|
78115
|
-
// token; views loaded through this manager always carry one.
|
|
78116
|
-
if (existing.schemaToken === "")
|
|
78117
|
-
return existing;
|
|
78118
78301
|
try {
|
|
78119
78302
|
if (await this._dataProvider.fetchSchemaToken() === existing.schemaToken)
|
|
78120
78303
|
return existing;
|
|
@@ -92256,6 +92439,7 @@ class IModelApp {
|
|
|
92256
92439
|
});
|
|
92257
92440
|
}
|
|
92258
92441
|
/** Format the tooltip strings returned by [[IModelConnection.getToolTipMessage]].
|
|
92442
|
+
* @note Each string is interpreted as HTML. Any untrusted content must be HTML-escaped or sanitized before calling this method.
|
|
92259
92443
|
* @alpha
|
|
92260
92444
|
*/
|
|
92261
92445
|
static formatElementToolTip(msg) {
|
|
@@ -92943,7 +93127,10 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92943
93127
|
const result = await reader.next();
|
|
92944
93128
|
if (result.done)
|
|
92945
93129
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.BadRequest, "PRAGMA checksum(schema_token) returned no rows");
|
|
92946
|
-
|
|
93130
|
+
const token = result.value.sha3_256;
|
|
93131
|
+
if (typeof token !== "string")
|
|
93132
|
+
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.BadRequest, "PRAGMA checksum(schema_token) returned an invalid sha3_256 column");
|
|
93133
|
+
return token;
|
|
92947
93134
|
},
|
|
92948
93135
|
};
|
|
92949
93136
|
}
|
|
@@ -92962,7 +93149,9 @@ class IModelConnection extends _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.I
|
|
|
92962
93149
|
const token = result.value.schemaToken;
|
|
92963
93150
|
if (data === undefined || data === null)
|
|
92964
93151
|
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.BadRequest, `${pragma} returned null data column`);
|
|
92965
|
-
|
|
93152
|
+
if (typeof token !== "string")
|
|
93153
|
+
throw new _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.IModelError(_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.IModelStatus.BadRequest, `${pragma} returned an invalid schemaToken column`);
|
|
93154
|
+
return { data, schemaToken: token };
|
|
92966
93155
|
}
|
|
92967
93156
|
}
|
|
92968
93157
|
/** A connection that exists without an iModel. Useful for connecting to Reality Data services.
|
|
@@ -161248,8 +161437,13 @@ class FormatsProviderManager {
|
|
|
161248
161437
|
this.onFormatsChanged.raiseEvent(args);
|
|
161249
161438
|
});
|
|
161250
161439
|
}
|
|
161251
|
-
async getFormat(name, system) {
|
|
161252
|
-
return this._formatsProvider.getFormat(name, system);
|
|
161440
|
+
async getFormat(name, system, context) {
|
|
161441
|
+
return this._formatsProvider.getFormat(name, system, context);
|
|
161442
|
+
}
|
|
161443
|
+
/** Returns `undefined` when the current provider cannot look up formats synchronously. */
|
|
161444
|
+
getFormatSync(name, system, context) {
|
|
161445
|
+
const provider = this._formatsProvider;
|
|
161446
|
+
return typeof provider.getFormatSync === "function" ? provider.getFormatSync(name, system, context) : undefined;
|
|
161253
161447
|
}
|
|
161254
161448
|
get formatsProvider() { return this; }
|
|
161255
161449
|
set formatsProvider(formatsProvider) {
|
|
@@ -166395,7 +166589,7 @@ class GltfReader {
|
|
|
166395
166589
|
}
|
|
166396
166590
|
readMeshPrimitive(primitive, featureTable, pseudoRtcBias) {
|
|
166397
166591
|
const meshMode = _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.JsonUtils.asInt(primitive.mode, _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Triangles);
|
|
166398
|
-
if (meshMode === _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Points &&
|
|
166592
|
+
if (meshMode === _common_gltf_GltfSchema__WEBPACK_IMPORTED_MODULE_12__.GltfMeshMode.Points && primitive.indices === undefined) {
|
|
166399
166593
|
const pointCloud = this.readPointCloud2(primitive, undefined !== featureTable);
|
|
166400
166594
|
if (pointCloud)
|
|
166401
166595
|
return pointCloud;
|
|
@@ -166874,6 +167068,8 @@ class GltfReader {
|
|
|
166874
167068
|
vertexCount = bufferData.count ?? 0;
|
|
166875
167069
|
featureIdBuffers.set(featureIdDesc.attribute, { buffer, stride: bufferView.stride });
|
|
166876
167070
|
}
|
|
167071
|
+
if (featureIdBuffers.size === 0)
|
|
167072
|
+
return undefined;
|
|
166877
167073
|
const itwinFeatureIndices = [];
|
|
166878
167074
|
const vertexPropsMap = new Map();
|
|
166879
167075
|
for (let vertexId = 0; vertexId < vertexCount; vertexId++) {
|
|
@@ -313830,16 +314026,17 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
313830
314026
|
/* harmony import */ var _Unit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Unit */ "../../core/quantity/lib/esm/Unit.js");
|
|
313831
314027
|
/* harmony import */ var _internal_BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/BasicUnitConversionData */ "../../core/quantity/lib/esm/internal/BasicUnitConversionData.js");
|
|
313832
314028
|
/* harmony import */ var _internal_BasicUnitsResolvedStateCache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/BasicUnitsResolvedStateCache */ "../../core/quantity/lib/esm/internal/BasicUnitsResolvedStateCache.js");
|
|
314029
|
+
/* harmony import */ var _assets_Units_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./assets/Units.json */ "../../core/quantity/lib/esm/assets/Units.json");
|
|
314030
|
+
|
|
313833
314031
|
|
|
313834
314032
|
|
|
313835
314033
|
|
|
314034
|
+
const bundledSchema = _assets_Units_json__WEBPACK_IMPORTED_MODULE_3__;
|
|
313836
314035
|
async function resolveState() {
|
|
313837
|
-
return (0,_internal_BasicUnitsResolvedStateCache__WEBPACK_IMPORTED_MODULE_2__.resolveBasicUnitsData)(async () =>
|
|
313838
|
-
|
|
313839
|
-
|
|
313840
|
-
|
|
313841
|
-
return schema;
|
|
313842
|
-
});
|
|
314036
|
+
return (0,_internal_BasicUnitsResolvedStateCache__WEBPACK_IMPORTED_MODULE_2__.resolveBasicUnitsData)(async () => bundledSchema);
|
|
314037
|
+
}
|
|
314038
|
+
function resolveStateSync() {
|
|
314039
|
+
return (0,_internal_BasicUnitsResolvedStateCache__WEBPACK_IMPORTED_MODULE_2__.resolveBasicUnitsDataSync)(bundledSchema);
|
|
313843
314040
|
}
|
|
313844
314041
|
/** @internal — test use only. Resets the shared module-level lazy cache. */
|
|
313845
314042
|
function _testResetUnitsCache() {
|
|
@@ -313848,12 +314045,11 @@ function _testResetUnitsCache() {
|
|
|
313848
314045
|
/**
|
|
313849
314046
|
* A `UnitsProvider` backed by the full BIS `Units.ecschema.json` bundled as a JSON asset.
|
|
313850
314047
|
*
|
|
313851
|
-
* The bundled
|
|
313852
|
-
*
|
|
313853
|
-
* share the same immutable lookup indexes.
|
|
314048
|
+
* The bundled data is available locally. The provider builds its immutable lookup indexes on the
|
|
314049
|
+
* first call and caches them at module scope, so multiple instances share the same indexes.
|
|
313854
314050
|
*
|
|
313855
|
-
* If
|
|
313856
|
-
*
|
|
314051
|
+
* If resolving the bundled data fails, the next provider call retries instead of retaining a failed
|
|
314052
|
+
* module-level state.
|
|
313857
314053
|
*
|
|
313858
314054
|
* This is the zero-dependency default for backends, tools, and any frontend that doesn't need
|
|
313859
314055
|
* iModel overrides. Equivalent to calling `createUnitsProvider()` with no arguments.
|
|
@@ -313862,6 +314058,16 @@ function _testResetUnitsCache() {
|
|
|
313862
314058
|
* @beta
|
|
313863
314059
|
*/
|
|
313864
314060
|
class BasicUnitsProvider {
|
|
314061
|
+
/** Find a built-in unit by fully qualified name using local data. */
|
|
314062
|
+
findUnitByNameSync(unitName) {
|
|
314063
|
+
const state = resolveStateSync();
|
|
314064
|
+
const entry = state.nameMap.get(unitName);
|
|
314065
|
+
return entry ? entry.props : new _Unit__WEBPACK_IMPORTED_MODULE_0__.BadUnit();
|
|
314066
|
+
}
|
|
314067
|
+
/** Compute a conversion between built-in units using the same bundled data as [[getConversion]]. */
|
|
314068
|
+
getConversionSync(fromUnit, toUnit) {
|
|
314069
|
+
return (0,_internal_BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_1__.getBasicUnitConversion)(resolveStateSync(), fromUnit, toUnit);
|
|
314070
|
+
}
|
|
313865
314071
|
// ── UnitsProvider implementation ─────────────────────────────────────
|
|
313866
314072
|
/** Find a unit by its display label, optionally filtering by schema name, phenomenon, and unit system.
|
|
313867
314073
|
* @param unitLabel - The display label to search for (case-insensitive).
|
|
@@ -314633,6 +314839,12 @@ class Format extends BaseFormat {
|
|
|
314633
314839
|
await actualFormat.fromJSON(unitsProvider, formatProps);
|
|
314634
314840
|
return actualFormat;
|
|
314635
314841
|
}
|
|
314842
|
+
/** Create a `Format` from `FormatProps` using a synchronous unit provider. */
|
|
314843
|
+
static createFromJSONSync(name, unitsProvider, formatProps) {
|
|
314844
|
+
const actualFormat = new Format(name);
|
|
314845
|
+
actualFormat.fromFullyResolvedJSON(resolveFormatPropsSync(name, unitsProvider, formatProps));
|
|
314846
|
+
return actualFormat;
|
|
314847
|
+
}
|
|
314636
314848
|
static createFromFullyResolvedJSON(name, formatProps) {
|
|
314637
314849
|
const actualFormat = new Format(name);
|
|
314638
314850
|
actualFormat.fromFullyResolvedJSON(formatProps);
|
|
@@ -314699,52 +314911,50 @@ class Format extends BaseFormat {
|
|
|
314699
314911
|
return baseFormatProps;
|
|
314700
314912
|
}
|
|
314701
314913
|
}
|
|
314702
|
-
|
|
314914
|
+
function validateCompositeUnitInput(name, label) {
|
|
314703
314915
|
if (typeof name !== "string" || (undefined !== label && typeof label !== "string")) {
|
|
314704
314916
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `This Composite has a unit with an invalid 'name' or 'label' attribute.`);
|
|
314705
314917
|
}
|
|
314706
|
-
|
|
314918
|
+
}
|
|
314919
|
+
function validateResolvedUnit(unit, errorMessage) {
|
|
314707
314920
|
if (!unit || !unit.isValid) {
|
|
314708
|
-
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson,
|
|
314921
|
+
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, errorMessage);
|
|
314709
314922
|
}
|
|
314710
314923
|
return unit;
|
|
314711
314924
|
}
|
|
314712
|
-
|
|
314925
|
+
function getAzimuthBearingUnitName(formatName, jsonObj, key) {
|
|
314713
314926
|
const unitName = jsonObj[key];
|
|
314714
|
-
if (undefined !== unitName) {
|
|
314715
|
-
|
|
314716
|
-
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} has an invalid '${key}' attribute. It should be of type 'string'.`);
|
|
314717
|
-
}
|
|
314718
|
-
const unit = await provider.findUnitByName(unitName);
|
|
314719
|
-
if (!unit || !unit.isValid) {
|
|
314720
|
-
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `Invalid unit name '${unitName}' for ${key} in Format '${formatName}'.`);
|
|
314721
|
-
}
|
|
314722
|
-
return unit;
|
|
314927
|
+
if (undefined !== unitName && typeof unitName !== "string") {
|
|
314928
|
+
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} has an invalid '${key}' attribute. It should be of type 'string'.`);
|
|
314723
314929
|
}
|
|
314724
|
-
return
|
|
314930
|
+
return unitName;
|
|
314725
314931
|
}
|
|
314726
|
-
async function
|
|
314727
|
-
|
|
314728
|
-
|
|
314729
|
-
|
|
314730
|
-
|
|
314731
|
-
|
|
314732
|
-
|
|
314733
|
-
|
|
314734
|
-
|
|
314735
|
-
|
|
314736
|
-
|
|
314737
|
-
|
|
314738
|
-
|
|
314739
|
-
|
|
314740
|
-
|
|
314932
|
+
async function resolveCompositeUnit(provider, name, label) {
|
|
314933
|
+
validateCompositeUnitInput(name, label);
|
|
314934
|
+
return validateResolvedUnit(await provider.findUnitByName(name), `Invalid unit name '${name}'.`);
|
|
314935
|
+
}
|
|
314936
|
+
function resolveCompositeUnitSync(provider, name, label) {
|
|
314937
|
+
validateCompositeUnitInput(name, label);
|
|
314938
|
+
return validateResolvedUnit(provider.findUnitByNameSync(name), `Invalid unit name '${name}'.`);
|
|
314939
|
+
}
|
|
314940
|
+
async function resolveAzimuthBearingUnit(formatName, jsonObj, key, provider) {
|
|
314941
|
+
const unitName = getAzimuthBearingUnitName(formatName, jsonObj, key);
|
|
314942
|
+
return undefined === unitName ? undefined : validateResolvedUnit(await provider.findUnitByName(unitName), `Invalid unit name '${unitName}' for ${key} in Format '${formatName}'.`);
|
|
314943
|
+
}
|
|
314944
|
+
function resolveAzimuthBearingUnitSync(formatName, jsonObj, key, provider) {
|
|
314945
|
+
const unitName = getAzimuthBearingUnitName(formatName, jsonObj, key);
|
|
314946
|
+
return undefined === unitName ? undefined : validateResolvedUnit(provider.findUnitByNameSync(unitName), `Invalid unit name '${unitName}' for ${key} in Format '${formatName}'.`);
|
|
314947
|
+
}
|
|
314948
|
+
function validateResolvedFormatProps(formatName, jsonObj, units, azimuthBaseUnit, revolutionUnit) {
|
|
314949
|
+
const formatType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseFormatType)(jsonObj.type, formatName);
|
|
314950
|
+
if (formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio && units?.length === 2) {
|
|
314951
|
+
const phenomenon1 = units[0].unit.phenomenon;
|
|
314952
|
+
const phenomenon2 = units[1].unit.phenomenon;
|
|
314953
|
+
if (phenomenon1 !== phenomenon2) {
|
|
314954
|
+
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} has 2-unit composite with different phenomena. Both units must have the same phenomenon. Found '${phenomenon1}' and '${phenomenon2}'.`);
|
|
314741
314955
|
}
|
|
314742
314956
|
}
|
|
314743
|
-
|
|
314744
|
-
const type = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseFormatType)(jsonObj.type, formatName);
|
|
314745
|
-
if (type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing) {
|
|
314746
|
-
azimuthBaseUnit = await resolveAzimuthBearingUnit(formatName, jsonObj, "azimuthBaseUnit", unitsProvider);
|
|
314747
|
-
revolutionUnit = await resolveAzimuthBearingUnit(formatName, jsonObj, "revolutionUnit", unitsProvider);
|
|
314957
|
+
if (formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing) {
|
|
314748
314958
|
if (!revolutionUnit) {
|
|
314749
314959
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} is 'Azimuth' or 'Bearing' type therefore the attribute 'revolutionUnit' is required.`);
|
|
314750
314960
|
}
|
|
@@ -314752,6 +314962,8 @@ async function resolveFormatProps(formatName, unitsProvider, jsonObj) {
|
|
|
314752
314962
|
throw new _Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityError(_Exception__WEBPACK_IMPORTED_MODULE_1__.QuantityStatus.InvalidJson, `The Format ${formatName} has an 'azimuthBase' attribute therefore the attribute 'azimuthBaseUnit' is required.`);
|
|
314753
314963
|
}
|
|
314754
314964
|
}
|
|
314965
|
+
}
|
|
314966
|
+
function createResolvedFormatProps(jsonObj, units, azimuthBaseUnit, revolutionUnit) {
|
|
314755
314967
|
return {
|
|
314756
314968
|
...jsonObj,
|
|
314757
314969
|
azimuthBaseUnit,
|
|
@@ -314762,6 +314974,38 @@ async function resolveFormatProps(formatName, unitsProvider, jsonObj) {
|
|
|
314762
314974
|
} : undefined,
|
|
314763
314975
|
};
|
|
314764
314976
|
}
|
|
314977
|
+
async function resolveFormatProps(formatName, unitsProvider, jsonObj) {
|
|
314978
|
+
const units = undefined === jsonObj.composite?.units ? undefined : await Promise.all(jsonObj.composite.units.map(async (entry) => ({
|
|
314979
|
+
// Label is intentionally not validated, matching master: existing JSON may carry a non-string label (e.g. null).
|
|
314980
|
+
unit: await resolveCompositeUnit(unitsProvider, entry.name),
|
|
314981
|
+
label: entry.label,
|
|
314982
|
+
})));
|
|
314983
|
+
let azimuthBaseUnit;
|
|
314984
|
+
let revolutionUnit;
|
|
314985
|
+
const formatType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseFormatType)(jsonObj.type, formatName);
|
|
314986
|
+
if (formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing) {
|
|
314987
|
+
azimuthBaseUnit = await resolveAzimuthBearingUnit(formatName, jsonObj, "azimuthBaseUnit", unitsProvider);
|
|
314988
|
+
revolutionUnit = await resolveAzimuthBearingUnit(formatName, jsonObj, "revolutionUnit", unitsProvider);
|
|
314989
|
+
}
|
|
314990
|
+
validateResolvedFormatProps(formatName, jsonObj, units, azimuthBaseUnit, revolutionUnit);
|
|
314991
|
+
return createResolvedFormatProps(jsonObj, units, azimuthBaseUnit, revolutionUnit);
|
|
314992
|
+
}
|
|
314993
|
+
function resolveFormatPropsSync(formatName, unitsProvider, jsonObj) {
|
|
314994
|
+
const units = undefined === jsonObj.composite?.units ? undefined : jsonObj.composite.units.map((entry) => ({
|
|
314995
|
+
// Keep in sync with resolveFormatProps: label is intentionally not validated.
|
|
314996
|
+
unit: resolveCompositeUnitSync(unitsProvider, entry.name),
|
|
314997
|
+
label: entry.label,
|
|
314998
|
+
}));
|
|
314999
|
+
let azimuthBaseUnit;
|
|
315000
|
+
let revolutionUnit;
|
|
315001
|
+
const formatType = (0,_FormatEnums__WEBPACK_IMPORTED_MODULE_2__.parseFormatType)(jsonObj.type, formatName);
|
|
315002
|
+
if (formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Azimuth || formatType === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Bearing) {
|
|
315003
|
+
azimuthBaseUnit = resolveAzimuthBearingUnitSync(formatName, jsonObj, "azimuthBaseUnit", unitsProvider);
|
|
315004
|
+
revolutionUnit = resolveAzimuthBearingUnitSync(formatName, jsonObj, "revolutionUnit", unitsProvider);
|
|
315005
|
+
}
|
|
315006
|
+
validateResolvedFormatProps(formatName, jsonObj, units, azimuthBaseUnit, revolutionUnit);
|
|
315007
|
+
return createResolvedFormatProps(jsonObj, units, azimuthBaseUnit, revolutionUnit);
|
|
315008
|
+
}
|
|
314765
315009
|
|
|
314766
315010
|
|
|
314767
315011
|
/***/ },
|
|
@@ -315906,15 +316150,12 @@ class FormatterSpec {
|
|
|
315906
316150
|
get azimuthBaseConversion() { return this._azimuthBaseConversion; }
|
|
315907
316151
|
get revolutionConversion() { return this._revolutionConversion; }
|
|
315908
316152
|
/** Build conversion specs for ratio format with 2 composite units (numerator/denominator). */
|
|
315909
|
-
static
|
|
316153
|
+
static *buildRatioUnitConversions(units, persistenceUnit) {
|
|
315910
316154
|
const conversions = [];
|
|
315911
316155
|
const [numeratorUnit, numeratorLabel] = units[0];
|
|
315912
316156
|
const [denominatorUnit, denominatorLabel] = units[1];
|
|
315913
316157
|
// Compute ratio scale: how many numerator units per denominator unit (e.g., IN:FT = 12)
|
|
315914
|
-
const denominatorToNumerator =
|
|
315915
|
-
if (denominatorToNumerator.error) {
|
|
315916
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${denominatorUnit.name}" to "${numeratorUnit.name}" could not be resolved.`);
|
|
315917
|
-
}
|
|
316158
|
+
const denominatorToNumerator = yield* requestConversion(denominatorUnit, numeratorUnit);
|
|
315918
316159
|
const displayRatioScale = denominatorToNumerator.factor;
|
|
315919
316160
|
// Avoid double-scaling: if persistence unit already encodes the display ratio, use factor 1.
|
|
315920
316161
|
// Check by name heuristic (e.g., IN_PER_FT with ratioUnits [IN, FT] → no scaling needed)
|
|
@@ -315930,7 +316171,7 @@ class FormatterSpec {
|
|
|
315930
316171
|
name: `${numeratorUnit.name}_per_${denominatorUnit.name}`,
|
|
315931
316172
|
label: "",
|
|
315932
316173
|
system: numeratorUnit.system,
|
|
315933
|
-
conversion:
|
|
316174
|
+
conversion: createRatioConversionProps(ratioScaleFactor, denominatorToNumerator),
|
|
315934
316175
|
};
|
|
315935
316176
|
conversions.push(ratioConversionSpec);
|
|
315936
316177
|
// Numerator unit for label lookup
|
|
@@ -315953,6 +316194,9 @@ class FormatterSpec {
|
|
|
315953
316194
|
}
|
|
315954
316195
|
/** Get an array of UnitConversionSpecs, one for each unit that is to be shown in the formatted quantity string. */
|
|
315955
316196
|
static async getUnitConversions(format, unitsProvider, inputUnit) {
|
|
316197
|
+
return runAsync(FormatterSpec.buildUnitConversions(format, inputUnit), unitsProvider);
|
|
316198
|
+
}
|
|
316199
|
+
static *buildUnitConversions(format, inputUnit) {
|
|
315956
316200
|
const conversions = [];
|
|
315957
316201
|
let persistenceUnit = inputUnit;
|
|
315958
316202
|
if (!persistenceUnit) {
|
|
@@ -315966,17 +316210,14 @@ class FormatterSpec {
|
|
|
315966
316210
|
}
|
|
315967
316211
|
// Handle 2-unit composite for ratio formats (scale factors)
|
|
315968
316212
|
if (format.type === _FormatEnums__WEBPACK_IMPORTED_MODULE_2__.FormatType.Ratio && format.units && format.units.length === 2) {
|
|
315969
|
-
return FormatterSpec.
|
|
316213
|
+
return yield* FormatterSpec.buildRatioUnitConversions(format.units, persistenceUnit);
|
|
315970
316214
|
}
|
|
315971
316215
|
if (format.units) {
|
|
315972
316216
|
let convertFromUnit = inputUnit;
|
|
315973
316217
|
for (const unit of format.units) {
|
|
315974
316218
|
let unitConversion;
|
|
315975
316219
|
if (convertFromUnit) {
|
|
315976
|
-
unitConversion =
|
|
315977
|
-
if (unitConversion.error) {
|
|
315978
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${convertFromUnit.name}" to "${unit[0].name}" could not be resolved.`);
|
|
315979
|
-
}
|
|
316220
|
+
unitConversion = yield* requestConversion(convertFromUnit, unit[0]);
|
|
315980
316221
|
}
|
|
315981
316222
|
else {
|
|
315982
316223
|
unitConversion = { factor: 1.0, offset: 0.0 };
|
|
@@ -316007,14 +316248,18 @@ class FormatterSpec {
|
|
|
316007
316248
|
* @see BaseFormat.revolutionUnit
|
|
316008
316249
|
*/
|
|
316009
316250
|
static async create(name, format, unitsProvider, inputUnit) {
|
|
316010
|
-
|
|
316251
|
+
return runAsync(FormatterSpec.buildFormatterSpec(name, format, inputUnit), unitsProvider);
|
|
316252
|
+
}
|
|
316253
|
+
/** Create a `FormatterSpec` using a synchronous unit provider. */
|
|
316254
|
+
static createSync(name, format, unitsProvider, inputUnit) {
|
|
316255
|
+
return runSync(FormatterSpec.buildFormatterSpec(name, format, inputUnit), unitsProvider);
|
|
316256
|
+
}
|
|
316257
|
+
static *buildFormatterSpec(name, format, inputUnit) {
|
|
316258
|
+
const conversions = yield* FormatterSpec.buildUnitConversions(format, inputUnit);
|
|
316011
316259
|
let azimuthBaseConversion;
|
|
316012
316260
|
if (format.azimuthBaseUnit !== undefined) {
|
|
316013
316261
|
if (inputUnit !== undefined) {
|
|
316014
|
-
azimuthBaseConversion =
|
|
316015
|
-
if (azimuthBaseConversion.error) {
|
|
316016
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${format.azimuthBaseUnit.name}" to "${inputUnit.name}" could not be resolved.`);
|
|
316017
|
-
}
|
|
316262
|
+
azimuthBaseConversion = yield* requestConversion(format.azimuthBaseUnit, inputUnit);
|
|
316018
316263
|
}
|
|
316019
316264
|
else {
|
|
316020
316265
|
azimuthBaseConversion = { factor: 1.0, offset: 0.0 };
|
|
@@ -316023,10 +316268,7 @@ class FormatterSpec {
|
|
|
316023
316268
|
let revolutionConversion;
|
|
316024
316269
|
if (format.revolutionUnit !== undefined) {
|
|
316025
316270
|
if (inputUnit !== undefined) {
|
|
316026
|
-
revolutionConversion =
|
|
316027
|
-
if (revolutionConversion.error) {
|
|
316028
|
-
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${format.revolutionUnit.name}" to "${inputUnit.name}" could not be resolved.`);
|
|
316029
|
-
}
|
|
316271
|
+
revolutionConversion = yield* requestConversion(format.revolutionUnit, inputUnit);
|
|
316030
316272
|
}
|
|
316031
316273
|
else {
|
|
316032
316274
|
revolutionConversion = { factor: 1.0, offset: 0.0 };
|
|
@@ -316039,6 +316281,30 @@ class FormatterSpec {
|
|
|
316039
316281
|
return _Formatter__WEBPACK_IMPORTED_MODULE_3__.Formatter.formatQuantity(magnitude, this);
|
|
316040
316282
|
}
|
|
316041
316283
|
}
|
|
316284
|
+
function* requestConversion(fromUnit, toUnit) {
|
|
316285
|
+
const conversion = yield [fromUnit, toUnit];
|
|
316286
|
+
if (conversion.error) {
|
|
316287
|
+
_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Logger.logWarning(_QuantityLoggerCategory__WEBPACK_IMPORTED_MODULE_1__.QuantityLoggerCategory.Formatting, `Unit conversion from "${fromUnit.name}" to "${toUnit.name}" could not be resolved.`);
|
|
316288
|
+
}
|
|
316289
|
+
return conversion;
|
|
316290
|
+
}
|
|
316291
|
+
async function runAsync(builder, unitsProvider) {
|
|
316292
|
+
let step = builder.next();
|
|
316293
|
+
while (!step.done)
|
|
316294
|
+
step = builder.next(await unitsProvider.getConversion(...step.value));
|
|
316295
|
+
return step.value;
|
|
316296
|
+
}
|
|
316297
|
+
function runSync(builder, unitsProvider) {
|
|
316298
|
+
let step = builder.next();
|
|
316299
|
+
while (!step.done)
|
|
316300
|
+
step = builder.next(unitsProvider.getConversionSync(...step.value));
|
|
316301
|
+
return step.value;
|
|
316302
|
+
}
|
|
316303
|
+
function createRatioConversionProps(ratioScaleFactor, sourceConversion) {
|
|
316304
|
+
return sourceConversion.error
|
|
316305
|
+
? { factor: ratioScaleFactor, offset: 0.0, error: true }
|
|
316306
|
+
: { factor: ratioScaleFactor, offset: 0.0 };
|
|
316307
|
+
}
|
|
316042
316308
|
|
|
316043
316309
|
|
|
316044
316310
|
/***/ },
|
|
@@ -319747,7 +320013,8 @@ const basicUnitConversionData = {
|
|
|
319747
320013
|
__webpack_require__.r(__webpack_exports__);
|
|
319748
320014
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
319749
320015
|
/* harmony export */ _testResetResolvedBasicUnitsDataCache: () => (/* binding */ _testResetResolvedBasicUnitsDataCache),
|
|
319750
|
-
/* harmony export */ resolveBasicUnitsData: () => (/* binding */ resolveBasicUnitsData)
|
|
320016
|
+
/* harmony export */ resolveBasicUnitsData: () => (/* binding */ resolveBasicUnitsData),
|
|
320017
|
+
/* harmony export */ resolveBasicUnitsDataSync: () => (/* binding */ resolveBasicUnitsDataSync)
|
|
319751
320018
|
/* harmony export */ });
|
|
319752
320019
|
/* harmony import */ var _BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BasicUnitConversionData */ "../../core/quantity/lib/esm/internal/BasicUnitConversionData.js");
|
|
319753
320020
|
|
|
@@ -319774,6 +320041,12 @@ async function resolveBasicUnitsData(loadSchema) {
|
|
|
319774
320041
|
}
|
|
319775
320042
|
return _resolvePromise;
|
|
319776
320043
|
}
|
|
320044
|
+
/** Return shared resolved data for built-in units, building it synchronously on first use.
|
|
320045
|
+
* @internal
|
|
320046
|
+
*/
|
|
320047
|
+
function resolveBasicUnitsDataSync(schema) {
|
|
320048
|
+
return _resolvedData ??= (0,_BasicUnitConversionData__WEBPACK_IMPORTED_MODULE_0__.buildResolvedBasicUnitsData)(schema);
|
|
320049
|
+
}
|
|
319777
320050
|
/** @internal — test use only. Resets the shared module-level lazy cache.
|
|
319778
320051
|
* This stays in source rather than under a test folder because the public test seam
|
|
319779
320052
|
* `BasicUnitsProvider._testResetUnitsCache()` lives in source and delegates here.
|
|
@@ -337021,7 +337294,18 @@ class WMS {
|
|
|
337021
337294
|
(module) {
|
|
337022
337295
|
|
|
337023
337296
|
"use strict";
|
|
337024
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.14.0-dev.
|
|
337297
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.14.0-dev.22","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","vite-plugin-static-copy":"2.2.0"},"//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"}}');
|
|
337298
|
+
|
|
337299
|
+
/***/ },
|
|
337300
|
+
|
|
337301
|
+
/***/ "../../core/quantity/lib/esm/assets/Units.json"
|
|
337302
|
+
/*!*****************************************************!*\
|
|
337303
|
+
!*** ../../core/quantity/lib/esm/assets/Units.json ***!
|
|
337304
|
+
\*****************************************************/
|
|
337305
|
+
(module) {
|
|
337306
|
+
|
|
337307
|
+
"use strict";
|
|
337308
|
+
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)"}}}');
|
|
337025
337309
|
|
|
337026
337310
|
/***/ }
|
|
337027
337311
|
|