@itwin/core-frontend 5.12.0-dev.11 → 5.12.0-dev.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/DrawingViewState.d.ts.map +1 -1
- package/lib/cjs/DrawingViewState.js +3 -4
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +6 -7
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
- package/lib/cjs/ViewCreator2d.js +7 -9
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js +1 -2
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/DrawingViewState.d.ts.map +1 -1
- package/lib/esm/DrawingViewState.js +3 -4
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +6 -7
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/ViewCreator2d.d.ts.map +1 -1
- package/lib/esm/ViewCreator2d.js +7 -9
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/esm/tools/ElementSetTool.js +1 -2
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/package.json +20 -20
package/lib/cjs/ViewCreator2d.js
CHANGED
|
@@ -200,10 +200,9 @@ class ViewCreator2d {
|
|
|
200
200
|
async _addSheetViewProps(modelId, props) {
|
|
201
201
|
let width = 0;
|
|
202
202
|
let height = 0;
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
height = row.height;
|
|
203
|
+
for await (const row of this._imodel.createQueryReader(`SELECT Width, Height FROM bis.Sheet WHERE ECInstanceId = ?`, core_common_1.QueryBinder.from([modelId]), { rowFormat: core_common_1.QueryRowFormat.UseECSqlPropertyNames })) {
|
|
204
|
+
width = row.Width;
|
|
205
|
+
height = row.Height;
|
|
207
206
|
break;
|
|
208
207
|
}
|
|
209
208
|
const sheetProps = {
|
|
@@ -247,7 +246,7 @@ class ViewCreator2d {
|
|
|
247
246
|
* @param modelId of target model.
|
|
248
247
|
*/
|
|
249
248
|
async _getViewDefinitionsIdForModel(modelId) {
|
|
250
|
-
const query = `SELECT ECInstanceId from Bis.ViewDefinition2D WHERE BaseModel.Id = ${modelId} AND isPrivate = false LIMIT 1`;
|
|
249
|
+
const query = `SELECT ECInstanceId as id from Bis.ViewDefinition2D WHERE BaseModel.Id = ${modelId} AND isPrivate = false LIMIT 1`;
|
|
251
250
|
const viewDefinitionsId = await this._executeQuery(query);
|
|
252
251
|
return (viewDefinitionsId.length) > 0 ? viewDefinitionsId[0] : undefined;
|
|
253
252
|
}
|
|
@@ -255,7 +254,7 @@ class ViewCreator2d {
|
|
|
255
254
|
* Get all drawing categories
|
|
256
255
|
*/
|
|
257
256
|
async _getAllCategories() {
|
|
258
|
-
const query = "SELECT ECInstanceId from BisCore.DrawingCategory";
|
|
257
|
+
const query = "SELECT ECInstanceId as id from BisCore.DrawingCategory";
|
|
259
258
|
const categories = await this._executeQuery(query);
|
|
260
259
|
return categories;
|
|
261
260
|
}
|
|
@@ -264,7 +263,7 @@ class ViewCreator2d {
|
|
|
264
263
|
* @param modelId of target model.
|
|
265
264
|
*/
|
|
266
265
|
async _getSheetAttachments(modelId) {
|
|
267
|
-
const query = `SELECT ECInstanceId FROM Bis.ViewAttachment WHERE Model.Id = ${modelId}`;
|
|
266
|
+
const query = `SELECT ECInstanceId as id FROM Bis.ViewAttachment WHERE Model.Id = ${modelId}`;
|
|
268
267
|
const attachments = await this._executeQuery(query);
|
|
269
268
|
return attachments;
|
|
270
269
|
}
|
|
@@ -274,8 +273,7 @@ class ViewCreator2d {
|
|
|
274
273
|
*/
|
|
275
274
|
_executeQuery = async (query) => {
|
|
276
275
|
const rows = [];
|
|
277
|
-
|
|
278
|
-
for await (const row of this._imodel.createQueryReader(query, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames }))
|
|
276
|
+
for await (const row of this._imodel.createQueryReader(query, undefined, { rowFormat: core_common_1.QueryRowFormat.UseECSqlPropertyNames }))
|
|
279
277
|
rows.push(row.id);
|
|
280
278
|
return rows;
|
|
281
279
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewCreator2d.js","sourceRoot":"","sources":["../../src/ViewCreator2d.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Views\n */\n\n/*\nAPI for creating a 2D view from a given modelId and modelType (classFullName).\nAdditional options (such as background color) can be passed during view creation.\n*/\n\nimport { Id64Array, Id64String, IModelStatus } from \"@itwin/core-bentley\";\nimport {\n CategorySelectorProps, Code, ColorDef, DisplayStyleProps, IModel, IModelError, ModelSelectorProps, QueryBinder, QueryRowFormat, SheetProps,\n ViewDefinition2dProps, ViewStateProps,\n} from \"@itwin/core-common\";\nimport { Range3d } from \"@itwin/core-geometry\";\nimport { DrawingViewState } from \"./DrawingViewState\";\nimport { EntityState } from \"./EntityState\";\nimport { IModelConnection } from \"./IModelConnection\";\nimport { DrawingModelState, SectionDrawingModelState, SheetModelState } from \"./ModelState\";\nimport { SheetViewState } from \"./SheetViewState\";\nimport { ViewState, ViewState2d } from \"./ViewState\";\n\n/** Options for creating a [[ViewState2d]] via [[ViewCreator2d]].\n * @public\n * @extensions\n*/\nexport interface ViewCreator2dOptions {\n /** Aspect ratio of [[Viewport]]. Required to fit contents of the model in the initial state of the view. */\n vpAspect?: number;\n /** Background color of the view (default is white). */\n bgColor?: ColorDef;\n /** Checks to see if there already is a [[ViewDefinition2d]] for the given modelId. If so, use it as the seed view, and merge its props into the final view created. */\n useSeedView?: boolean;\n}\n\n/**\n * API for creating a [[ViewState2d]] for a 2D model ([[GeometricModel2dState]]). @see [[ViewCreator3d]] to create a view for a 3d model.\n * Example usage:\n * ```ts\n * const viewCreator = new ViewCreator2d(imodel);\n * const models = await imodel.models.queryProps({ from: \"BisCore.GeometricModel2d\" });\n * if (models.length > 0)\n * const view = await viewCreator.createViewForModel(models[0].id!);\n * ```\n * @public\n * @extensions\n */\nexport class ViewCreator2d {\n\n // Types of 2D models the API supports\n private static _drawingModelClasses = [DrawingModelState.classFullName, SectionDrawingModelState.classFullName];\n private static _sheetModelClasses = [SheetModelState.classFullName];\n\n /**\n * Constructs a ViewCreator2d using an [[IModelConnection]].\n * @param _imodel [[IModelConnection]] to query for categories and/or models.\n */\n constructor(private _imodel: IModelConnection) { }\n\n /**\n * Creates and returns view for the 2D model id passed in.\n * @param modelId Id of the 2D model for the view.\n * @param [options] Options for creating the view.\n * @throws [IModelError]($common) If modelType is not supported.\n */\n public async createViewForModel(modelId: Id64String, options?: ViewCreator2dOptions): Promise<ViewState> {\n\n const baseClassName = await this._getModelBaseClassName(modelId);\n\n const viewState = await this._createViewState2d(modelId, baseClassName.classFullName, options);\n try {\n await viewState.load();\n } catch { }\n\n return viewState;\n }\n\n /**\n * Gets model base class name from id.\n * @param modelId of target model.\n * @throws [IModelError]($common) if modelId is invalid.\n */\n private async _getModelBaseClassName(modelId: Id64String): Promise<typeof EntityState> {\n\n let baseClassName;\n\n const modelProps = await this._imodel.models.getProps(modelId);\n if (modelProps.length > 0) {\n const modelType = modelProps[0].classFullName;\n baseClassName = await this._imodel.findClassFor(modelType, undefined);\n } else\n throw new IModelError(IModelStatus.BadModel, \"ViewCreator2d._getModelBaseClassName: modelId is invalid\");\n\n if (baseClassName === undefined)\n throw new IModelError(IModelStatus.WrongClass, \"ViewCreator2d.getViewForModel: modelType is invalid\");\n\n return baseClassName;\n }\n\n /**\n * Creates view from any 2D model type (Drawing/SectionDrawing/Sheet)\n * @param modelId of target model.\n * @param modelType classFullName of target 2D model.\n * @param options for view creation.\n * @throws [IModelError]($common) if modelType is not supported.\n */\n private async _createViewState2d(modelId: Id64String, modelType: string, options?: ViewCreator2dOptions): Promise<ViewState2d> {\n let viewState: ViewState2d;\n if (this._isDrawingModelClass(modelType)) {\n const props = await this._createViewStateProps(modelId, options);\n viewState = DrawingViewState.createFromProps(props, this._imodel);\n } else if (this._isSheetModelClass(modelType)) {\n let props = await this._createViewStateProps(modelId, options);\n props = await this._addSheetViewProps(modelId, props);\n viewState = SheetViewState.createFromProps(props, this._imodel);\n } else\n throw new IModelError(IModelStatus.WrongClass, \"ViewCreator2d._createViewState2d: modelType not supported\");\n\n return viewState;\n }\n\n /**\n * Checks to see if given model is of [[DrawingModelState]].\n * @param modelType classFullName of model.\n */\n private _isDrawingModelClass(modelType: string) {\n if (ViewCreator2d._drawingModelClasses.includes(modelType)) {\n return true;\n }\n return false;\n }\n\n /**\n * Checks to see if given model is of [[SheetModelState]].\n * @param modelType classFullName of model.\n */\n private _isSheetModelClass(modelType: string) {\n if (ViewCreator2d._sheetModelClasses.includes(modelType)) {\n return true;\n }\n return false;\n }\n\n /**\n * Creates ViewStateProps for the model. ViewStateProps are composed of the 4 sets of Props below.\n * @param modelId of target model.\n * @param options for view creation.\n */\n private _createViewStateProps = async (modelId: Id64String, options?: ViewCreator2dOptions): Promise<ViewStateProps> => {\n // Use dictionary model in all props\n const dictionaryId = IModel.dictionaryId;\n const categories = await this._getAllCategories();\n\n // Get bg color from options or default to white\n const bgColor: ColorDef = options?.bgColor ? options.bgColor : ColorDef.white;\n\n // model extents\n const modelProps = await this._imodel.models.queryExtents(modelId);\n const modelExtents = Range3d.fromJSON(modelProps[0]?.extents);\n let originX = modelExtents.low.x;\n let originY = modelExtents.low.y;\n let deltaX = modelExtents.xLength();\n let deltaY = modelExtents.yLength();\n\n // if vp aspect given, update model extents to fit view\n if (options?.vpAspect) {\n const modelAspect = deltaY / deltaX;\n\n if (modelAspect > options.vpAspect) {\n const xFix = deltaY / options.vpAspect;\n originX = originX - xFix / 2;\n deltaX = deltaX + xFix;\n } else if (modelAspect < options.vpAspect) {\n const yFix = deltaX * options.vpAspect;\n originY = originY - yFix / 2;\n deltaY = deltaY + yFix;\n }\n }\n\n const modelSelectorProps: ModelSelectorProps = {\n models: [modelId],\n code: Code.createEmpty(),\n model: dictionaryId,\n classFullName: \"BisCore:ModelSelector\",\n };\n\n const categorySelectorProps: CategorySelectorProps = {\n categories,\n code: Code.createEmpty(),\n model: dictionaryId,\n classFullName: \"BisCore:CategorySelector\",\n };\n\n const viewDefinitionProps: ViewDefinition2dProps = {\n baseModelId: modelId,\n categorySelectorId: \"\",\n displayStyleId: \"\",\n origin: { x: originX, y: originY },\n delta: { x: deltaX, y: deltaY },\n angle: { radians: 0 },\n code: Code.createEmpty(),\n model: dictionaryId,\n classFullName: \"BisCore:ViewDefinition2d\",\n };\n\n const displayStyleProps: DisplayStyleProps = {\n code: Code.createEmpty(),\n model: dictionaryId,\n classFullName: \"BisCore:DisplayStyle2d\",\n jsonProperties: {\n styles: {\n backgroundColor: bgColor.tbgr,\n },\n },\n };\n\n const viewStateProps: ViewStateProps = {\n displayStyleProps,\n categorySelectorProps,\n modelSelectorProps,\n viewDefinitionProps,\n modelExtents,\n };\n\n // merge seed view props if needed\n return options?.useSeedView ? this._mergeSeedView(modelId, viewStateProps) : viewStateProps;\n };\n\n /**\n * Adds Sheet view props to given view props.\n * @param modelId of target model.\n * @param props input ViewStateProps.\n */\n private async _addSheetViewProps(modelId: Id64String, props: ViewStateProps) {\n let width = 0;\n let height = 0;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n for await (const row of this._imodel.createQueryReader(`SELECT Width, Height FROM bis.Sheet WHERE ECInstanceId = ?`, QueryBinder.from([modelId]), { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\n width = row.width as number;\n height = row.height as number;\n break;\n }\n const sheetProps: SheetProps = {\n model: modelId,\n code: { spec: \"\", scope: \"\" },\n classFullName: \"DrawingSheetModel\",\n height,\n width,\n };\n\n props.sheetAttachments = await this._getSheetAttachments(modelId);\n props.sheetProps = sheetProps;\n\n return props;\n }\n\n /**\n * Merges a seed view in the iModel with the passed view state props. It will be a no-op if there are no 2D views for target model.\n * @param modelId of target model.\n * @param props Input view props to be merged\n */\n private async _mergeSeedView(modelId: Id64String, props: ViewStateProps): Promise<ViewStateProps> {\n const viewDefinitionId = await this._getViewDefinitionsIdForModel(modelId);\n // Return incase no viewDefinition found.\n if (viewDefinitionId === undefined)\n return props;\n\n const seedViewState = (await this._imodel.views.load(viewDefinitionId));\n const seedViewStateProps: ViewStateProps = {\n categorySelectorProps: seedViewState.categorySelector.toJSON(),\n viewDefinitionProps: seedViewState.toJSON(),\n displayStyleProps: seedViewState.displayStyle.toJSON(),\n };\n const mergedDisplayProps = seedViewStateProps.displayStyleProps;\n if (mergedDisplayProps.jsonProperties !== undefined) {\n mergedDisplayProps.jsonProperties.styles = {\n ...mergedDisplayProps.jsonProperties.styles,\n ...props.displayStyleProps.jsonProperties?.styles,\n };\n }\n\n return { ...seedViewStateProps, ...props, displayStyleProps: mergedDisplayProps };\n }\n\n /**\n * Get all view definitions for a given model.\n * @param modelId of target model.\n */\n private async _getViewDefinitionsIdForModel(modelId: Id64String): Promise<Id64String | undefined> {\n\n const query = `SELECT ECInstanceId from Bis.ViewDefinition2D WHERE BaseModel.Id = ${modelId} AND isPrivate = false LIMIT 1`;\n const viewDefinitionsId = await this._executeQuery(query);\n\n return (viewDefinitionsId.length) > 0 ? viewDefinitionsId[0] : undefined;\n }\n\n /**\n * Get all drawing categories\n */\n private async _getAllCategories(): Promise<Id64Array> {\n\n const query = \"SELECT ECInstanceId from BisCore.DrawingCategory\";\n const categories = await this._executeQuery(query);\n\n return categories;\n }\n\n /**\n * Get all sheet attachments\n * @param modelId of target model.\n */\n private async _getSheetAttachments(modelId: string): Promise<Id64Array> {\n\n const query = `SELECT ECInstanceId FROM Bis.ViewAttachment WHERE Model.Id = ${modelId}`;\n const attachments = await this._executeQuery(query);\n\n return attachments;\n }\n\n /**\n * Helper function to execute ECSql queries.\n * @param query statement to execute.\n */\n private _executeQuery = async (query: string) => {\n const rows = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n for await (const row of this._imodel.createQueryReader(query, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames }))\n rows.push(row.id);\n\n return rows;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ViewCreator2d.js","sourceRoot":"","sources":["../../src/ViewCreator2d.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Views\n */\n\n/*\nAPI for creating a 2D view from a given modelId and modelType (classFullName).\nAdditional options (such as background color) can be passed during view creation.\n*/\n\nimport { Id64Array, Id64String, IModelStatus } from \"@itwin/core-bentley\";\nimport {\n CategorySelectorProps, Code, ColorDef, DisplayStyleProps, IModel, IModelError, ModelSelectorProps, QueryBinder, QueryRowFormat, SheetProps,\n ViewDefinition2dProps, ViewStateProps,\n} from \"@itwin/core-common\";\nimport { Range3d } from \"@itwin/core-geometry\";\nimport { DrawingViewState } from \"./DrawingViewState\";\nimport { EntityState } from \"./EntityState\";\nimport { IModelConnection } from \"./IModelConnection\";\nimport { DrawingModelState, SectionDrawingModelState, SheetModelState } from \"./ModelState\";\nimport { SheetViewState } from \"./SheetViewState\";\nimport { ViewState, ViewState2d } from \"./ViewState\";\n\n/** Options for creating a [[ViewState2d]] via [[ViewCreator2d]].\n * @public\n * @extensions\n*/\nexport interface ViewCreator2dOptions {\n /** Aspect ratio of [[Viewport]]. Required to fit contents of the model in the initial state of the view. */\n vpAspect?: number;\n /** Background color of the view (default is white). */\n bgColor?: ColorDef;\n /** Checks to see if there already is a [[ViewDefinition2d]] for the given modelId. If so, use it as the seed view, and merge its props into the final view created. */\n useSeedView?: boolean;\n}\n\n/**\n * API for creating a [[ViewState2d]] for a 2D model ([[GeometricModel2dState]]). @see [[ViewCreator3d]] to create a view for a 3d model.\n * Example usage:\n * ```ts\n * const viewCreator = new ViewCreator2d(imodel);\n * const models = await imodel.models.queryProps({ from: \"BisCore.GeometricModel2d\" });\n * if (models.length > 0)\n * const view = await viewCreator.createViewForModel(models[0].id!);\n * ```\n * @public\n * @extensions\n */\nexport class ViewCreator2d {\n\n // Types of 2D models the API supports\n private static _drawingModelClasses = [DrawingModelState.classFullName, SectionDrawingModelState.classFullName];\n private static _sheetModelClasses = [SheetModelState.classFullName];\n\n /**\n * Constructs a ViewCreator2d using an [[IModelConnection]].\n * @param _imodel [[IModelConnection]] to query for categories and/or models.\n */\n constructor(private _imodel: IModelConnection) { }\n\n /**\n * Creates and returns view for the 2D model id passed in.\n * @param modelId Id of the 2D model for the view.\n * @param [options] Options for creating the view.\n * @throws [IModelError]($common) If modelType is not supported.\n */\n public async createViewForModel(modelId: Id64String, options?: ViewCreator2dOptions): Promise<ViewState> {\n\n const baseClassName = await this._getModelBaseClassName(modelId);\n\n const viewState = await this._createViewState2d(modelId, baseClassName.classFullName, options);\n try {\n await viewState.load();\n } catch { }\n\n return viewState;\n }\n\n /**\n * Gets model base class name from id.\n * @param modelId of target model.\n * @throws [IModelError]($common) if modelId is invalid.\n */\n private async _getModelBaseClassName(modelId: Id64String): Promise<typeof EntityState> {\n\n let baseClassName;\n\n const modelProps = await this._imodel.models.getProps(modelId);\n if (modelProps.length > 0) {\n const modelType = modelProps[0].classFullName;\n baseClassName = await this._imodel.findClassFor(modelType, undefined);\n } else\n throw new IModelError(IModelStatus.BadModel, \"ViewCreator2d._getModelBaseClassName: modelId is invalid\");\n\n if (baseClassName === undefined)\n throw new IModelError(IModelStatus.WrongClass, \"ViewCreator2d.getViewForModel: modelType is invalid\");\n\n return baseClassName;\n }\n\n /**\n * Creates view from any 2D model type (Drawing/SectionDrawing/Sheet)\n * @param modelId of target model.\n * @param modelType classFullName of target 2D model.\n * @param options for view creation.\n * @throws [IModelError]($common) if modelType is not supported.\n */\n private async _createViewState2d(modelId: Id64String, modelType: string, options?: ViewCreator2dOptions): Promise<ViewState2d> {\n let viewState: ViewState2d;\n if (this._isDrawingModelClass(modelType)) {\n const props = await this._createViewStateProps(modelId, options);\n viewState = DrawingViewState.createFromProps(props, this._imodel);\n } else if (this._isSheetModelClass(modelType)) {\n let props = await this._createViewStateProps(modelId, options);\n props = await this._addSheetViewProps(modelId, props);\n viewState = SheetViewState.createFromProps(props, this._imodel);\n } else\n throw new IModelError(IModelStatus.WrongClass, \"ViewCreator2d._createViewState2d: modelType not supported\");\n\n return viewState;\n }\n\n /**\n * Checks to see if given model is of [[DrawingModelState]].\n * @param modelType classFullName of model.\n */\n private _isDrawingModelClass(modelType: string) {\n if (ViewCreator2d._drawingModelClasses.includes(modelType)) {\n return true;\n }\n return false;\n }\n\n /**\n * Checks to see if given model is of [[SheetModelState]].\n * @param modelType classFullName of model.\n */\n private _isSheetModelClass(modelType: string) {\n if (ViewCreator2d._sheetModelClasses.includes(modelType)) {\n return true;\n }\n return false;\n }\n\n /**\n * Creates ViewStateProps for the model. ViewStateProps are composed of the 4 sets of Props below.\n * @param modelId of target model.\n * @param options for view creation.\n */\n private _createViewStateProps = async (modelId: Id64String, options?: ViewCreator2dOptions): Promise<ViewStateProps> => {\n // Use dictionary model in all props\n const dictionaryId = IModel.dictionaryId;\n const categories = await this._getAllCategories();\n\n // Get bg color from options or default to white\n const bgColor: ColorDef = options?.bgColor ? options.bgColor : ColorDef.white;\n\n // model extents\n const modelProps = await this._imodel.models.queryExtents(modelId);\n const modelExtents = Range3d.fromJSON(modelProps[0]?.extents);\n let originX = modelExtents.low.x;\n let originY = modelExtents.low.y;\n let deltaX = modelExtents.xLength();\n let deltaY = modelExtents.yLength();\n\n // if vp aspect given, update model extents to fit view\n if (options?.vpAspect) {\n const modelAspect = deltaY / deltaX;\n\n if (modelAspect > options.vpAspect) {\n const xFix = deltaY / options.vpAspect;\n originX = originX - xFix / 2;\n deltaX = deltaX + xFix;\n } else if (modelAspect < options.vpAspect) {\n const yFix = deltaX * options.vpAspect;\n originY = originY - yFix / 2;\n deltaY = deltaY + yFix;\n }\n }\n\n const modelSelectorProps: ModelSelectorProps = {\n models: [modelId],\n code: Code.createEmpty(),\n model: dictionaryId,\n classFullName: \"BisCore:ModelSelector\",\n };\n\n const categorySelectorProps: CategorySelectorProps = {\n categories,\n code: Code.createEmpty(),\n model: dictionaryId,\n classFullName: \"BisCore:CategorySelector\",\n };\n\n const viewDefinitionProps: ViewDefinition2dProps = {\n baseModelId: modelId,\n categorySelectorId: \"\",\n displayStyleId: \"\",\n origin: { x: originX, y: originY },\n delta: { x: deltaX, y: deltaY },\n angle: { radians: 0 },\n code: Code.createEmpty(),\n model: dictionaryId,\n classFullName: \"BisCore:ViewDefinition2d\",\n };\n\n const displayStyleProps: DisplayStyleProps = {\n code: Code.createEmpty(),\n model: dictionaryId,\n classFullName: \"BisCore:DisplayStyle2d\",\n jsonProperties: {\n styles: {\n backgroundColor: bgColor.tbgr,\n },\n },\n };\n\n const viewStateProps: ViewStateProps = {\n displayStyleProps,\n categorySelectorProps,\n modelSelectorProps,\n viewDefinitionProps,\n modelExtents,\n };\n\n // merge seed view props if needed\n return options?.useSeedView ? this._mergeSeedView(modelId, viewStateProps) : viewStateProps;\n };\n\n /**\n * Adds Sheet view props to given view props.\n * @param modelId of target model.\n * @param props input ViewStateProps.\n */\n private async _addSheetViewProps(modelId: Id64String, props: ViewStateProps) {\n let width = 0;\n let height = 0;\n for await (const row of this._imodel.createQueryReader(`SELECT Width, Height FROM bis.Sheet WHERE ECInstanceId = ?`, QueryBinder.from([modelId]), { rowFormat: QueryRowFormat.UseECSqlPropertyNames })) {\n width = row.Width as number;\n height = row.Height as number;\n break;\n }\n const sheetProps: SheetProps = {\n model: modelId,\n code: { spec: \"\", scope: \"\" },\n classFullName: \"DrawingSheetModel\",\n height,\n width,\n };\n\n props.sheetAttachments = await this._getSheetAttachments(modelId);\n props.sheetProps = sheetProps;\n\n return props;\n }\n\n /**\n * Merges a seed view in the iModel with the passed view state props. It will be a no-op if there are no 2D views for target model.\n * @param modelId of target model.\n * @param props Input view props to be merged\n */\n private async _mergeSeedView(modelId: Id64String, props: ViewStateProps): Promise<ViewStateProps> {\n const viewDefinitionId = await this._getViewDefinitionsIdForModel(modelId);\n // Return incase no viewDefinition found.\n if (viewDefinitionId === undefined)\n return props;\n\n const seedViewState = (await this._imodel.views.load(viewDefinitionId));\n const seedViewStateProps: ViewStateProps = {\n categorySelectorProps: seedViewState.categorySelector.toJSON(),\n viewDefinitionProps: seedViewState.toJSON(),\n displayStyleProps: seedViewState.displayStyle.toJSON(),\n };\n const mergedDisplayProps = seedViewStateProps.displayStyleProps;\n if (mergedDisplayProps.jsonProperties !== undefined) {\n mergedDisplayProps.jsonProperties.styles = {\n ...mergedDisplayProps.jsonProperties.styles,\n ...props.displayStyleProps.jsonProperties?.styles,\n };\n }\n\n return { ...seedViewStateProps, ...props, displayStyleProps: mergedDisplayProps };\n }\n\n /**\n * Get all view definitions for a given model.\n * @param modelId of target model.\n */\n private async _getViewDefinitionsIdForModel(modelId: Id64String): Promise<Id64String | undefined> {\n\n const query = `SELECT ECInstanceId as id from Bis.ViewDefinition2D WHERE BaseModel.Id = ${modelId} AND isPrivate = false LIMIT 1`;\n const viewDefinitionsId = await this._executeQuery(query);\n\n return (viewDefinitionsId.length) > 0 ? viewDefinitionsId[0] : undefined;\n }\n\n /**\n * Get all drawing categories\n */\n private async _getAllCategories(): Promise<Id64Array> {\n\n const query = \"SELECT ECInstanceId as id from BisCore.DrawingCategory\";\n const categories = await this._executeQuery(query);\n\n return categories;\n }\n\n /**\n * Get all sheet attachments\n * @param modelId of target model.\n */\n private async _getSheetAttachments(modelId: string): Promise<Id64Array> {\n\n const query = `SELECT ECInstanceId as id FROM Bis.ViewAttachment WHERE Model.Id = ${modelId}`;\n const attachments = await this._executeQuery(query);\n\n return attachments;\n }\n\n /**\n * Helper function to execute ECSql queries.\n * @param query statement to execute.\n */\n private _executeQuery = async (query: string) => {\n const rows = [];\n for await (const row of this._imodel.createQueryReader(query, undefined, { rowFormat: QueryRowFormat.UseECSqlPropertyNames }))\n rows.push(row.id);\n\n return rows;\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementSetTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ElementSetTool.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAiB,iBAAiB,EAAQ,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE/H,OAAO,EAA0G,OAAO,EAAqB,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEjL,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAY,aAAa,EAAE,cAAc,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC1F,OAAO,EAAkE,yBAAyB,EAAyB,MAAM,kBAAkB,CAAC;AAGpJ;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,oFAAoF;IACpF,OAAO,IAAI;IACX,2CAA2C;IAC3C,QAAQ,IAAI;IACZ,mEAAmE;IACnE,YAAY,IAAI,CAAE,mDAAmD;IACrE,qFAAqF;IACrF,UAAU,IAAI;CACf;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;;EAIE;AACF,qBAAa,aAAa;IAUE,MAAM,EAAE,gBAAgB;IATlD;;OAEG;IACH,SAAgB,QAAQ,EAAE,SAAS,CAAM;IACzC;;OAEG;IACH,SAAgB,UAAU,EAAE,SAAS,EAAE,CAAM;IACtC,iBAAiB,UAAQ;gBACN,MAAM,EAAE,gBAAgB;IAElD,iKAAiK;IAC1J,SAAS;IAIhB,8DAA8D;IACvD,SAAS,CAAC,GAAG,EAAE,mBAAmB;IAKzC,IAAW,OAAO,YAAgC;IAClD,IAAW,KAAK,WAA0B;IAC1C,IAAW,MAAM,WAAmC;IAEpD,+CAA+C;IACxC,QAAQ,IAAI,gBAAgB;IAMnC,gDAAgD;IACzC,WAAW,IAAI,iBAAiB;IAKvC,iFAAiF;IAC1E,KAAK;IAMZ,OAAO,CAAC,qBAAqB;IAoB7B,+DAA+D;IACxD,QAAQ;IAaf,0DAA0D;IACnD,GAAG,CAAC,EAAE,EAAE,MAAM;IAErB,0DAA0D;IACnD,IAAI,CAAC,EAAE,EAAE,UAAU;IAE1B,mCAAmC;IAC5B,GAAG,CAAC,GAAG,EAAE,OAAO;IAevB,OAAO,CAAC,SAAS;IAmEV,MAAM,CAAC,GAAG,EAAE,OAAO;IAe1B,4FAA4F;IACrF,MAAM,CAAC,GAAG,EAAE,OAAO;CA+B3B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,8BAAsB,cAAe,SAAQ,aAAa;IACxD,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,oBAAoB,CAAkB;IAC9C,mFAAmF;IACnF,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAChC,8EAA8E;IAC9E,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAEnC,0DAA0D;IAC1D,SAAS,KAAK,MAAM,IAAI,aAAa,CAIpC;IAED,8EAA8E;IAC9E,SAAS,KAAK,mBAAmB,IAAI,MAAM,CAAgE;IAE3G;;;OAGG;IACH,SAAS,KAAK,oBAAoB,IAAI,MAAM,CAAc;IAE1D;;;;OAIG;IACH,SAAS,KAAK,eAAe,IAAI,OAAO,CAAkB;IAE1D;;;OAGG;IACH,SAAS,KAAK,WAAW,IAAI,OAAO,CAAkB;IAEtD;;;OAGG;IACH,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAAkB;IAE5D;;;;OAIG;IACH,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAAoC;IAE9E;;;OAGG;IACH,SAAS,KAAK,qCAAqC,IAAI,OAAO,CAAiB;IAE/E;;;OAGG;IACH,SAAS,KAAK,oCAAoC,IAAI,OAAO,CAAiB;IAE9E;;OAEG;IACH,SAAS,KAAK,oBAAoB,IAAI,OAAO,CAAkC;IAE/E;;OAEG;IACH,SAAS,KAAK,gBAAgB,IAAI,OAAO,CAA8C;IAEvF;;OAEG;IACH,SAAS,KAAK,4BAA4B,IAAI,OAAO,CAAkB;IAEvE;;OAEG;IACH,SAAS,KAAK,0BAA0B,IAAI,OAAO,CAA8C;IAEjG;;;OAGG;IACH,SAAS,KAAK,YAAY,IAAI,OAAO,CAAkB;IAEvD;;OAEG;IACH,SAAS,KAAK,YAAY,IAAI,OAAO,CAAkB;IAEvD;;OAEG;IACH,SAAS,KAAK,sBAAsB,IAAI,OAAO,CAS9C;IAED;;;;OAIG;IACH,SAAS,KAAK,mBAAmB,IAAI,OAAO,CAA2D;IAEvG;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO;IAExD;;MAEE;IACF,SAAS,CAAC,yBAAyB,IAAI,IAAI;IAoB3C;;OAEG;cACa,yBAAyB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAU7E;;OAEG;cACa,uBAAuB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAa3E,6EAA6E;cAC7D,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ElementSetTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ElementSetTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -388,8 +388,7 @@ class ElementSetTool extends PrimitiveTool_1.PrimitiveTool {
|
|
|
388
388
|
// When assembly parent is selected, pick all geometric elements with it as the parent.
|
|
389
389
|
// When assembly member is selected, pick the parent as well as all the other members.
|
|
390
390
|
const ecsql = `SELECT ECInstanceId as id, Parent.Id as parentId FROM BisCore.GeometricElement WHERE Parent.Id IN (SELECT Parent.Id as parentId FROM BisCore.GeometricElement WHERE (parent.Id IS NOT NULL AND ECInstanceId IN (${id})) OR parent.Id IN (${id}))`;
|
|
391
|
-
|
|
392
|
-
for await (const row of this.iModel.createQueryReader(ecsql, undefined, { rowFormat: core_common_1.QueryRowFormat.UseJsPropertyNames })) {
|
|
391
|
+
for await (const row of this.iModel.createQueryReader(ecsql, undefined, { rowFormat: core_common_1.QueryRowFormat.UseECSqlPropertyNames })) {
|
|
393
392
|
ids.add(row.parentId);
|
|
394
393
|
ids.add(row.id);
|
|
395
394
|
}
|