UNPKG

vim-webgl-component

Version:

A demonstration app built on top of the vim-webgl-viewer

1,099 lines (1,098 loc) 280 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LevelInViewTable = exports.LevelInView = exports.AssetInViewSheetTable = exports.AssetInViewSheet = exports.AssetInViewTable = exports.AssetInView = exports.ShapeInViewTable = exports.ShapeInView = exports.ElementInViewTable = exports.ElementInView = exports.ViewTable = exports.View = exports.FamilyInstanceTable = exports.FamilyInstance = exports.FamilyTypeTable = exports.FamilyType = exports.FamilyTable = exports.Family = exports.CategoryTable = exports.Category = exports.PhaseOrderInBimDocumentTable = exports.PhaseOrderInBimDocument = exports.DisplayUnitInBimDocumentTable = exports.DisplayUnitInBimDocument = exports.BimDocumentTable = exports.BimDocument = exports.RoomTable = exports.Room = exports.PhaseTable = exports.Phase = exports.LevelTable = exports.Level = exports.DesignOptionTable = exports.DesignOption = exports.GroupTable = exports.Group = exports.AssemblyInstanceTable = exports.AssemblyInstance = exports.WorksetTable = exports.Workset = exports.ElementTable = exports.Element = exports.ParameterTable = exports.Parameter = exports.ParameterDescriptorTable = exports.ParameterDescriptor = exports.DisplayUnitTable = exports.DisplayUnit = exports.AssetTable = exports.Asset = void 0; exports.ViewSheetInViewSheetSetTable = exports.ViewSheetInViewSheetSet = exports.ViewSheetTable = exports.ViewSheet = exports.ViewSheetSetTable = exports.ViewSheetSet = exports.ScheduleCellTable = exports.ScheduleCell = exports.ScheduleColumnTable = exports.ScheduleColumn = exports.ScheduleTable = exports.Schedule = exports.AreaSchemeTable = exports.AreaScheme = exports.AreaTable = exports.Area = exports.GridTable = exports.Grid = exports.PhaseFilterTable = exports.PhaseFilter = exports.BasePointTable = exports.BasePoint = exports.ElementInWarningTable = exports.ElementInWarning = exports.WarningTable = exports.Warning = exports.ElementInSystemTable = exports.ElementInSystem = exports.SystemTable = exports.System = exports.ShapeInShapeCollectionTable = exports.ShapeInShapeCollection = exports.ShapeCollectionTable = exports.ShapeCollection = exports.ShapeTable = exports.Shape = exports.GeometryTable = exports.Geometry = exports.NodeTable = exports.Node = exports.CompoundStructureTable = exports.CompoundStructure = exports.CompoundStructureLayerTable = exports.CompoundStructureLayer = exports.MaterialInElementTable = exports.MaterialInElement = exports.MaterialTable = exports.Material = exports.CameraTable = exports.Camera = void 0; exports.VimDocument = exports.BuildingTable = exports.Building = exports.SiteTable = exports.Site = exports.ViewInViewSheetTable = exports.ViewInViewSheet = exports.ViewInViewSheetSetTable = exports.ViewInViewSheetSet = void 0; const entityTable_1 = require("./entityTable"); const vimLoader_1 = require("./vimLoader"); class Asset { static async createFromTable(table, index) { let result = new Asset(); result.index = index; await Promise.all([ table.getBufferName(index).then(v => result.bufferName = v), ]); return result; } } exports.Asset = Asset; class AssetTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.Asset"); if (!entity) { return undefined; } let table = new AssetTable(); table.entityTable = new entityTable_1.EntityTable(entity, document.strings); return table; } getCount() { return this.entityTable.getCount(); } async get(assetIndex) { return await Asset.createFromTable(this, assetIndex); } async getAll() { const localTable = await this.entityTable.getLocal(); let bufferName; await Promise.all([ (async () => { bufferName = (await localTable.getStringArray("string:BufferName")); })(), ]); let asset = []; const rowCount = await this.getCount(); for (let i = 0; i < rowCount; i++) { asset.push({ index: i, bufferName: bufferName ? bufferName[i] : undefined }); } return asset; } async getBufferName(assetIndex) { return (await this.entityTable.getString(assetIndex, "string:BufferName")); } async getAllBufferName() { return (await this.entityTable.getStringArray("string:BufferName")); } } exports.AssetTable = AssetTable; class DisplayUnit { static async createFromTable(table, index) { let result = new DisplayUnit(); result.index = index; await Promise.all([ table.getSpec(index).then(v => result.spec = v), table.getType(index).then(v => result.type = v), table.getLabel(index).then(v => result.label = v), ]); return result; } } exports.DisplayUnit = DisplayUnit; class DisplayUnitTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.DisplayUnit"); if (!entity) { return undefined; } let table = new DisplayUnitTable(); table.entityTable = new entityTable_1.EntityTable(entity, document.strings); return table; } getCount() { return this.entityTable.getCount(); } async get(displayUnitIndex) { return await DisplayUnit.createFromTable(this, displayUnitIndex); } async getAll() { const localTable = await this.entityTable.getLocal(); let spec; let type; let label; await Promise.all([ (async () => { spec = (await localTable.getStringArray("string:Spec")); })(), (async () => { type = (await localTable.getStringArray("string:Type")); })(), (async () => { label = (await localTable.getStringArray("string:Label")); })(), ]); let displayUnit = []; const rowCount = await this.getCount(); for (let i = 0; i < rowCount; i++) { displayUnit.push({ index: i, spec: spec ? spec[i] : undefined, type: type ? type[i] : undefined, label: label ? label[i] : undefined }); } return displayUnit; } async getSpec(displayUnitIndex) { return (await this.entityTable.getString(displayUnitIndex, "string:Spec")); } async getAllSpec() { return (await this.entityTable.getStringArray("string:Spec")); } async getType(displayUnitIndex) { return (await this.entityTable.getString(displayUnitIndex, "string:Type")); } async getAllType() { return (await this.entityTable.getStringArray("string:Type")); } async getLabel(displayUnitIndex) { return (await this.entityTable.getString(displayUnitIndex, "string:Label")); } async getAllLabel() { return (await this.entityTable.getStringArray("string:Label")); } } exports.DisplayUnitTable = DisplayUnitTable; class ParameterDescriptor { static async createFromTable(table, index) { let result = new ParameterDescriptor(); result.index = index; await Promise.all([ table.getName(index).then(v => result.name = v), table.getGroup(index).then(v => result.group = v), table.getParameterType(index).then(v => result.parameterType = v), table.getIsInstance(index).then(v => result.isInstance = v), table.getIsShared(index).then(v => result.isShared = v), table.getIsReadOnly(index).then(v => result.isReadOnly = v), table.getFlags(index).then(v => result.flags = v), table.getGuid(index).then(v => result.guid = v), table.getStorageType(index).then(v => result.storageType = v), table.getDisplayUnitIndex(index).then(v => result.displayUnitIndex = v), ]); return result; } } exports.ParameterDescriptor = ParameterDescriptor; class ParameterDescriptorTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.ParameterDescriptor"); if (!entity) { return undefined; } let table = new ParameterDescriptorTable(); table.document = document; table.entityTable = new entityTable_1.EntityTable(entity, document.strings); return table; } getCount() { return this.entityTable.getCount(); } async get(parameterDescriptorIndex) { return await ParameterDescriptor.createFromTable(this, parameterDescriptorIndex); } async getAll() { const localTable = await this.entityTable.getLocal(); let name; let group; let parameterType; let isInstance; let isShared; let isReadOnly; let flags; let guid; let storageType; let displayUnitIndex; await Promise.all([ (async () => { name = (await localTable.getStringArray("string:Name")); })(), (async () => { group = (await localTable.getStringArray("string:Group")); })(), (async () => { parameterType = (await localTable.getStringArray("string:ParameterType")); })(), (async () => { isInstance = (await localTable.getBooleanArray("byte:IsInstance")); })(), (async () => { isShared = (await localTable.getBooleanArray("byte:IsShared")); })(), (async () => { isReadOnly = (await localTable.getBooleanArray("byte:IsReadOnly")); })(), (async () => { flags = (await localTable.getNumberArray("int:Flags")); })(), (async () => { guid = (await localTable.getStringArray("string:Guid")); })(), (async () => { storageType = (await localTable.getNumberArray("int:StorageType")); })(), (async () => { displayUnitIndex = (await localTable.getNumberArray("index:Vim.DisplayUnit:DisplayUnit")); })(), ]); let parameterDescriptor = []; const rowCount = await this.getCount(); for (let i = 0; i < rowCount; i++) { parameterDescriptor.push({ index: i, name: name ? name[i] : undefined, group: group ? group[i] : undefined, parameterType: parameterType ? parameterType[i] : undefined, isInstance: isInstance ? isInstance[i] : undefined, isShared: isShared ? isShared[i] : undefined, isReadOnly: isReadOnly ? isReadOnly[i] : undefined, flags: flags ? flags[i] : undefined, guid: guid ? guid[i] : undefined, storageType: storageType ? storageType[i] : undefined, displayUnitIndex: displayUnitIndex ? displayUnitIndex[i] : undefined }); } return parameterDescriptor; } async getName(parameterDescriptorIndex) { return (await this.entityTable.getString(parameterDescriptorIndex, "string:Name")); } async getAllName() { return (await this.entityTable.getStringArray("string:Name")); } async getGroup(parameterDescriptorIndex) { return (await this.entityTable.getString(parameterDescriptorIndex, "string:Group")); } async getAllGroup() { return (await this.entityTable.getStringArray("string:Group")); } async getParameterType(parameterDescriptorIndex) { return (await this.entityTable.getString(parameterDescriptorIndex, "string:ParameterType")); } async getAllParameterType() { return (await this.entityTable.getStringArray("string:ParameterType")); } async getIsInstance(parameterDescriptorIndex) { return (await this.entityTable.getBoolean(parameterDescriptorIndex, "byte:IsInstance")); } async getAllIsInstance() { return (await this.entityTable.getBooleanArray("byte:IsInstance")); } async getIsShared(parameterDescriptorIndex) { return (await this.entityTable.getBoolean(parameterDescriptorIndex, "byte:IsShared")); } async getAllIsShared() { return (await this.entityTable.getBooleanArray("byte:IsShared")); } async getIsReadOnly(parameterDescriptorIndex) { return (await this.entityTable.getBoolean(parameterDescriptorIndex, "byte:IsReadOnly")); } async getAllIsReadOnly() { return (await this.entityTable.getBooleanArray("byte:IsReadOnly")); } async getFlags(parameterDescriptorIndex) { return (await this.entityTable.getNumber(parameterDescriptorIndex, "int:Flags")); } async getAllFlags() { return (await this.entityTable.getNumberArray("int:Flags")); } async getGuid(parameterDescriptorIndex) { return (await this.entityTable.getString(parameterDescriptorIndex, "string:Guid")); } async getAllGuid() { return (await this.entityTable.getStringArray("string:Guid")); } async getStorageType(parameterDescriptorIndex) { return (await this.entityTable.getNumber(parameterDescriptorIndex, "int:StorageType")); } async getAllStorageType() { return (await this.entityTable.getNumberArray("int:StorageType")); } async getDisplayUnitIndex(parameterDescriptorIndex) { return await this.entityTable.getNumber(parameterDescriptorIndex, "index:Vim.DisplayUnit:DisplayUnit"); } async getAllDisplayUnitIndex() { return await this.entityTable.getNumberArray("index:Vim.DisplayUnit:DisplayUnit"); } async getDisplayUnit(parameterDescriptorIndex) { const index = await this.getDisplayUnitIndex(parameterDescriptorIndex); if (index === undefined) { return undefined; } return await this.document.displayUnit?.get(index); } } exports.ParameterDescriptorTable = ParameterDescriptorTable; class Parameter { static async createFromTable(table, index) { let result = new Parameter(); result.index = index; await Promise.all([ table.getValue(index).then(v => result.value = v), table.getParameterDescriptorIndex(index).then(v => result.parameterDescriptorIndex = v), table.getElementIndex(index).then(v => result.elementIndex = v), ]); return result; } } exports.Parameter = Parameter; class ParameterTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.Parameter"); if (!entity) { return undefined; } let table = new ParameterTable(); table.document = document; table.entityTable = new entityTable_1.EntityTable(entity, document.strings); return table; } getCount() { return this.entityTable.getCount(); } async get(parameterIndex) { return await Parameter.createFromTable(this, parameterIndex); } async getAll() { const localTable = await this.entityTable.getLocal(); let value; let parameterDescriptorIndex; let elementIndex; await Promise.all([ (async () => { value = (await localTable.getStringArray("string:Value")); })(), (async () => { parameterDescriptorIndex = (await localTable.getNumberArray("index:Vim.ParameterDescriptor:ParameterDescriptor")); })(), (async () => { elementIndex = (await localTable.getNumberArray("index:Vim.Element:Element")); })(), ]); let parameter = []; const rowCount = await this.getCount(); for (let i = 0; i < rowCount; i++) { parameter.push({ index: i, value: value ? value[i] : undefined, parameterDescriptorIndex: parameterDescriptorIndex ? parameterDescriptorIndex[i] : undefined, elementIndex: elementIndex ? elementIndex[i] : undefined }); } return parameter; } async getValue(parameterIndex) { return (await this.entityTable.getString(parameterIndex, "string:Value")); } async getAllValue() { return (await this.entityTable.getStringArray("string:Value")); } async getParameterDescriptorIndex(parameterIndex) { return await this.entityTable.getNumber(parameterIndex, "index:Vim.ParameterDescriptor:ParameterDescriptor"); } async getAllParameterDescriptorIndex() { return await this.entityTable.getNumberArray("index:Vim.ParameterDescriptor:ParameterDescriptor"); } async getParameterDescriptor(parameterIndex) { const index = await this.getParameterDescriptorIndex(parameterIndex); if (index === undefined) { return undefined; } return await this.document.parameterDescriptor?.get(index); } async getElementIndex(parameterIndex) { return await this.entityTable.getNumber(parameterIndex, "index:Vim.Element:Element"); } async getAllElementIndex() { return await this.entityTable.getNumberArray("index:Vim.Element:Element"); } async getElement(parameterIndex) { const index = await this.getElementIndex(parameterIndex); if (index === undefined) { return undefined; } return await this.document.element?.get(index); } } exports.ParameterTable = ParameterTable; class Element { static async createFromTable(table, index) { let result = new Element(); result.index = index; await Promise.all([ table.getId(index).then(v => result.id = v), table.getType(index).then(v => result.type = v), table.getName(index).then(v => result.name = v), table.getUniqueId(index).then(v => result.uniqueId = v), table.getLocation_X(index).then(v => result.location_X = v), table.getLocation_Y(index).then(v => result.location_Y = v), table.getLocation_Z(index).then(v => result.location_Z = v), table.getFamilyName(index).then(v => result.familyName = v), table.getIsPinned(index).then(v => result.isPinned = v), table.getLevelIndex(index).then(v => result.levelIndex = v), table.getPhaseCreatedIndex(index).then(v => result.phaseCreatedIndex = v), table.getPhaseDemolishedIndex(index).then(v => result.phaseDemolishedIndex = v), table.getCategoryIndex(index).then(v => result.categoryIndex = v), table.getWorksetIndex(index).then(v => result.worksetIndex = v), table.getDesignOptionIndex(index).then(v => result.designOptionIndex = v), table.getOwnerViewIndex(index).then(v => result.ownerViewIndex = v), table.getGroupIndex(index).then(v => result.groupIndex = v), table.getAssemblyInstanceIndex(index).then(v => result.assemblyInstanceIndex = v), table.getBimDocumentIndex(index).then(v => result.bimDocumentIndex = v), table.getRoomIndex(index).then(v => result.roomIndex = v), ]); return result; } } exports.Element = Element; class ElementTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.Element"); if (!entity) { return undefined; } let table = new ElementTable(); table.document = document; table.entityTable = new entityTable_1.EntityTable(entity, document.strings); return table; } getCount() { return this.entityTable.getCount(); } async get(elementIndex) { return await Element.createFromTable(this, elementIndex); } async getAll() { const localTable = await this.entityTable.getLocal(); let id; let type; let name; let uniqueId; let location_X; let location_Y; let location_Z; let familyName; let isPinned; let levelIndex; let phaseCreatedIndex; let phaseDemolishedIndex; let categoryIndex; let worksetIndex; let designOptionIndex; let ownerViewIndex; let groupIndex; let assemblyInstanceIndex; let bimDocumentIndex; let roomIndex; await Promise.all([ (async () => { id = (await localTable.getBigIntArray("long:Id")) ?? (await localTable.getBigIntArray("int:Id")); })(), (async () => { type = (await localTable.getStringArray("string:Type")); })(), (async () => { name = (await localTable.getStringArray("string:Name")); })(), (async () => { uniqueId = (await localTable.getStringArray("string:UniqueId")); })(), (async () => { location_X = (await localTable.getNumberArray("float:Location.X")); })(), (async () => { location_Y = (await localTable.getNumberArray("float:Location.Y")); })(), (async () => { location_Z = (await localTable.getNumberArray("float:Location.Z")); })(), (async () => { familyName = (await localTable.getStringArray("string:FamilyName")); })(), (async () => { isPinned = (await localTable.getBooleanArray("byte:IsPinned")); })(), (async () => { levelIndex = (await localTable.getNumberArray("index:Vim.Level:Level")); })(), (async () => { phaseCreatedIndex = (await localTable.getNumberArray("index:Vim.Phase:PhaseCreated")); })(), (async () => { phaseDemolishedIndex = (await localTable.getNumberArray("index:Vim.Phase:PhaseDemolished")); })(), (async () => { categoryIndex = (await localTable.getNumberArray("index:Vim.Category:Category")); })(), (async () => { worksetIndex = (await localTable.getNumberArray("index:Vim.Workset:Workset")); })(), (async () => { designOptionIndex = (await localTable.getNumberArray("index:Vim.DesignOption:DesignOption")); })(), (async () => { ownerViewIndex = (await localTable.getNumberArray("index:Vim.View:OwnerView")); })(), (async () => { groupIndex = (await localTable.getNumberArray("index:Vim.Group:Group")); })(), (async () => { assemblyInstanceIndex = (await localTable.getNumberArray("index:Vim.AssemblyInstance:AssemblyInstance")); })(), (async () => { bimDocumentIndex = (await localTable.getNumberArray("index:Vim.BimDocument:BimDocument")); })(), (async () => { roomIndex = (await localTable.getNumberArray("index:Vim.Room:Room")); })(), ]); let element = []; const rowCount = await this.getCount(); for (let i = 0; i < rowCount; i++) { element.push({ index: i, id: id ? id[i] : undefined, type: type ? type[i] : undefined, name: name ? name[i] : undefined, uniqueId: uniqueId ? uniqueId[i] : undefined, location_X: location_X ? location_X[i] : undefined, location_Y: location_Y ? location_Y[i] : undefined, location_Z: location_Z ? location_Z[i] : undefined, familyName: familyName ? familyName[i] : undefined, isPinned: isPinned ? isPinned[i] : undefined, levelIndex: levelIndex ? levelIndex[i] : undefined, phaseCreatedIndex: phaseCreatedIndex ? phaseCreatedIndex[i] : undefined, phaseDemolishedIndex: phaseDemolishedIndex ? phaseDemolishedIndex[i] : undefined, categoryIndex: categoryIndex ? categoryIndex[i] : undefined, worksetIndex: worksetIndex ? worksetIndex[i] : undefined, designOptionIndex: designOptionIndex ? designOptionIndex[i] : undefined, ownerViewIndex: ownerViewIndex ? ownerViewIndex[i] : undefined, groupIndex: groupIndex ? groupIndex[i] : undefined, assemblyInstanceIndex: assemblyInstanceIndex ? assemblyInstanceIndex[i] : undefined, bimDocumentIndex: bimDocumentIndex ? bimDocumentIndex[i] : undefined, roomIndex: roomIndex ? roomIndex[i] : undefined }); } return element; } async getId(elementIndex) { return (await this.entityTable.getBigInt(elementIndex, "long:Id")) ?? (await this.entityTable.getBigInt(elementIndex, "int:Id")); } async getAllId() { return (await this.entityTable.getBigIntArray("long:Id")) ?? (await this.entityTable.getBigIntArray("int:Id")); } async getType(elementIndex) { return (await this.entityTable.getString(elementIndex, "string:Type")); } async getAllType() { return (await this.entityTable.getStringArray("string:Type")); } async getName(elementIndex) { return (await this.entityTable.getString(elementIndex, "string:Name")); } async getAllName() { return (await this.entityTable.getStringArray("string:Name")); } async getUniqueId(elementIndex) { return (await this.entityTable.getString(elementIndex, "string:UniqueId")); } async getAllUniqueId() { return (await this.entityTable.getStringArray("string:UniqueId")); } async getLocation_X(elementIndex) { return (await this.entityTable.getNumber(elementIndex, "float:Location.X")); } async getAllLocation_X() { return (await this.entityTable.getNumberArray("float:Location.X")); } async getLocation_Y(elementIndex) { return (await this.entityTable.getNumber(elementIndex, "float:Location.Y")); } async getAllLocation_Y() { return (await this.entityTable.getNumberArray("float:Location.Y")); } async getLocation_Z(elementIndex) { return (await this.entityTable.getNumber(elementIndex, "float:Location.Z")); } async getAllLocation_Z() { return (await this.entityTable.getNumberArray("float:Location.Z")); } async getFamilyName(elementIndex) { return (await this.entityTable.getString(elementIndex, "string:FamilyName")); } async getAllFamilyName() { return (await this.entityTable.getStringArray("string:FamilyName")); } async getIsPinned(elementIndex) { return (await this.entityTable.getBoolean(elementIndex, "byte:IsPinned")); } async getAllIsPinned() { return (await this.entityTable.getBooleanArray("byte:IsPinned")); } async getLevelIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.Level:Level"); } async getAllLevelIndex() { return await this.entityTable.getNumberArray("index:Vim.Level:Level"); } async getLevel(elementIndex) { const index = await this.getLevelIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.level?.get(index); } async getPhaseCreatedIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.Phase:PhaseCreated"); } async getAllPhaseCreatedIndex() { return await this.entityTable.getNumberArray("index:Vim.Phase:PhaseCreated"); } async getPhaseCreated(elementIndex) { const index = await this.getPhaseCreatedIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.phase?.get(index); } async getPhaseDemolishedIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.Phase:PhaseDemolished"); } async getAllPhaseDemolishedIndex() { return await this.entityTable.getNumberArray("index:Vim.Phase:PhaseDemolished"); } async getPhaseDemolished(elementIndex) { const index = await this.getPhaseDemolishedIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.phase?.get(index); } async getCategoryIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.Category:Category"); } async getAllCategoryIndex() { return await this.entityTable.getNumberArray("index:Vim.Category:Category"); } async getCategory(elementIndex) { const index = await this.getCategoryIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.category?.get(index); } async getWorksetIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.Workset:Workset"); } async getAllWorksetIndex() { return await this.entityTable.getNumberArray("index:Vim.Workset:Workset"); } async getWorkset(elementIndex) { const index = await this.getWorksetIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.workset?.get(index); } async getDesignOptionIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.DesignOption:DesignOption"); } async getAllDesignOptionIndex() { return await this.entityTable.getNumberArray("index:Vim.DesignOption:DesignOption"); } async getDesignOption(elementIndex) { const index = await this.getDesignOptionIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.designOption?.get(index); } async getOwnerViewIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.View:OwnerView"); } async getAllOwnerViewIndex() { return await this.entityTable.getNumberArray("index:Vim.View:OwnerView"); } async getOwnerView(elementIndex) { const index = await this.getOwnerViewIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.view?.get(index); } async getGroupIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.Group:Group"); } async getAllGroupIndex() { return await this.entityTable.getNumberArray("index:Vim.Group:Group"); } async getGroup(elementIndex) { const index = await this.getGroupIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.group?.get(index); } async getAssemblyInstanceIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.AssemblyInstance:AssemblyInstance"); } async getAllAssemblyInstanceIndex() { return await this.entityTable.getNumberArray("index:Vim.AssemblyInstance:AssemblyInstance"); } async getAssemblyInstance(elementIndex) { const index = await this.getAssemblyInstanceIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.assemblyInstance?.get(index); } async getBimDocumentIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.BimDocument:BimDocument"); } async getAllBimDocumentIndex() { return await this.entityTable.getNumberArray("index:Vim.BimDocument:BimDocument"); } async getBimDocument(elementIndex) { const index = await this.getBimDocumentIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.bimDocument?.get(index); } async getRoomIndex(elementIndex) { return await this.entityTable.getNumber(elementIndex, "index:Vim.Room:Room"); } async getAllRoomIndex() { return await this.entityTable.getNumberArray("index:Vim.Room:Room"); } async getRoom(elementIndex) { const index = await this.getRoomIndex(elementIndex); if (index === undefined) { return undefined; } return await this.document.room?.get(index); } } exports.ElementTable = ElementTable; class Workset { static async createFromTable(table, index) { let result = new Workset(); result.index = index; await Promise.all([ table.getId(index).then(v => result.id = v), table.getName(index).then(v => result.name = v), table.getKind(index).then(v => result.kind = v), table.getIsOpen(index).then(v => result.isOpen = v), table.getIsEditable(index).then(v => result.isEditable = v), table.getOwner(index).then(v => result.owner = v), table.getUniqueId(index).then(v => result.uniqueId = v), table.getBimDocumentIndex(index).then(v => result.bimDocumentIndex = v), ]); return result; } } exports.Workset = Workset; class WorksetTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.Workset"); if (!entity) { return undefined; } let table = new WorksetTable(); table.document = document; table.entityTable = new entityTable_1.EntityTable(entity, document.strings); return table; } getCount() { return this.entityTable.getCount(); } async get(worksetIndex) { return await Workset.createFromTable(this, worksetIndex); } async getAll() { const localTable = await this.entityTable.getLocal(); let id; let name; let kind; let isOpen; let isEditable; let owner; let uniqueId; let bimDocumentIndex; await Promise.all([ (async () => { id = (await localTable.getNumberArray("int:Id")); })(), (async () => { name = (await localTable.getStringArray("string:Name")); })(), (async () => { kind = (await localTable.getStringArray("string:Kind")); })(), (async () => { isOpen = (await localTable.getBooleanArray("byte:IsOpen")); })(), (async () => { isEditable = (await localTable.getBooleanArray("byte:IsEditable")); })(), (async () => { owner = (await localTable.getStringArray("string:Owner")); })(), (async () => { uniqueId = (await localTable.getStringArray("string:UniqueId")); })(), (async () => { bimDocumentIndex = (await localTable.getNumberArray("index:Vim.BimDocument:BimDocument")); })(), ]); let workset = []; const rowCount = await this.getCount(); for (let i = 0; i < rowCount; i++) { workset.push({ index: i, id: id ? id[i] : undefined, name: name ? name[i] : undefined, kind: kind ? kind[i] : undefined, isOpen: isOpen ? isOpen[i] : undefined, isEditable: isEditable ? isEditable[i] : undefined, owner: owner ? owner[i] : undefined, uniqueId: uniqueId ? uniqueId[i] : undefined, bimDocumentIndex: bimDocumentIndex ? bimDocumentIndex[i] : undefined }); } return workset; } async getId(worksetIndex) { return (await this.entityTable.getNumber(worksetIndex, "int:Id")); } async getAllId() { return (await this.entityTable.getNumberArray("int:Id")); } async getName(worksetIndex) { return (await this.entityTable.getString(worksetIndex, "string:Name")); } async getAllName() { return (await this.entityTable.getStringArray("string:Name")); } async getKind(worksetIndex) { return (await this.entityTable.getString(worksetIndex, "string:Kind")); } async getAllKind() { return (await this.entityTable.getStringArray("string:Kind")); } async getIsOpen(worksetIndex) { return (await this.entityTable.getBoolean(worksetIndex, "byte:IsOpen")); } async getAllIsOpen() { return (await this.entityTable.getBooleanArray("byte:IsOpen")); } async getIsEditable(worksetIndex) { return (await this.entityTable.getBoolean(worksetIndex, "byte:IsEditable")); } async getAllIsEditable() { return (await this.entityTable.getBooleanArray("byte:IsEditable")); } async getOwner(worksetIndex) { return (await this.entityTable.getString(worksetIndex, "string:Owner")); } async getAllOwner() { return (await this.entityTable.getStringArray("string:Owner")); } async getUniqueId(worksetIndex) { return (await this.entityTable.getString(worksetIndex, "string:UniqueId")); } async getAllUniqueId() { return (await this.entityTable.getStringArray("string:UniqueId")); } async getBimDocumentIndex(worksetIndex) { return await this.entityTable.getNumber(worksetIndex, "index:Vim.BimDocument:BimDocument"); } async getAllBimDocumentIndex() { return await this.entityTable.getNumberArray("index:Vim.BimDocument:BimDocument"); } async getBimDocument(worksetIndex) { const index = await this.getBimDocumentIndex(worksetIndex); if (index === undefined) { return undefined; } return await this.document.bimDocument?.get(index); } } exports.WorksetTable = WorksetTable; class AssemblyInstance { static async createFromTable(table, index) { let result = new AssemblyInstance(); result.index = index; await Promise.all([ table.getAssemblyTypeName(index).then(v => result.assemblyTypeName = v), table.getPosition_X(index).then(v => result.position_X = v), table.getPosition_Y(index).then(v => result.position_Y = v), table.getPosition_Z(index).then(v => result.position_Z = v), table.getElementIndex(index).then(v => result.elementIndex = v), ]); return result; } } exports.AssemblyInstance = AssemblyInstance; class AssemblyInstanceTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.AssemblyInstance"); if (!entity) { return undefined; } let table = new AssemblyInstanceTable(); table.document = document; table.entityTable = new entityTable_1.EntityTable(entity, document.strings); return table; } getCount() { return this.entityTable.getCount(); } async get(assemblyInstanceIndex) { return await AssemblyInstance.createFromTable(this, assemblyInstanceIndex); } async getAll() { const localTable = await this.entityTable.getLocal(); let assemblyTypeName; let position_X; let position_Y; let position_Z; let elementIndex; await Promise.all([ (async () => { assemblyTypeName = (await localTable.getStringArray("string:AssemblyTypeName")); })(), (async () => { position_X = (await localTable.getNumberArray("float:Position.X")); })(), (async () => { position_Y = (await localTable.getNumberArray("float:Position.Y")); })(), (async () => { position_Z = (await localTable.getNumberArray("float:Position.Z")); })(), (async () => { elementIndex = (await localTable.getNumberArray("index:Vim.Element:Element")); })(), ]); let assemblyInstance = []; const rowCount = await this.getCount(); for (let i = 0; i < rowCount; i++) { assemblyInstance.push({ index: i, assemblyTypeName: assemblyTypeName ? assemblyTypeName[i] : undefined, position_X: position_X ? position_X[i] : undefined, position_Y: position_Y ? position_Y[i] : undefined, position_Z: position_Z ? position_Z[i] : undefined, elementIndex: elementIndex ? elementIndex[i] : undefined }); } return assemblyInstance; } async getAssemblyTypeName(assemblyInstanceIndex) { return (await this.entityTable.getString(assemblyInstanceIndex, "string:AssemblyTypeName")); } async getAllAssemblyTypeName() { return (await this.entityTable.getStringArray("string:AssemblyTypeName")); } async getPosition_X(assemblyInstanceIndex) { return (await this.entityTable.getNumber(assemblyInstanceIndex, "float:Position.X")); } async getAllPosition_X() { return (await this.entityTable.getNumberArray("float:Position.X")); } async getPosition_Y(assemblyInstanceIndex) { return (await this.entityTable.getNumber(assemblyInstanceIndex, "float:Position.Y")); } async getAllPosition_Y() { return (await this.entityTable.getNumberArray("float:Position.Y")); } async getPosition_Z(assemblyInstanceIndex) { return (await this.entityTable.getNumber(assemblyInstanceIndex, "float:Position.Z")); } async getAllPosition_Z() { return (await this.entityTable.getNumberArray("float:Position.Z")); } async getElementIndex(assemblyInstanceIndex) { return await this.entityTable.getNumber(assemblyInstanceIndex, "index:Vim.Element:Element"); } async getAllElementIndex() { return await this.entityTable.getNumberArray("index:Vim.Element:Element"); } async getElement(assemblyInstanceIndex) { const index = await this.getElementIndex(assemblyInstanceIndex); if (index === undefined) { return undefined; } return await this.document.element?.get(index); } } exports.AssemblyInstanceTable = AssemblyInstanceTable; class Group { static async createFromTable(table, index) { let result = new Group(); result.index = index; await Promise.all([ table.getGroupType(index).then(v => result.groupType = v), table.getPosition_X(index).then(v => result.position_X = v), table.getPosition_Y(index).then(v => result.position_Y = v), table.getPosition_Z(index).then(v => result.position_Z = v), table.getElementIndex(index).then(v => result.elementIndex = v), ]); return result; } } exports.Group = Group; class GroupTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.Group"); if (!entity) { return undefined; } let table = new GroupTable(); table.document = document; table.entityTable = new entityTable_1.EntityTable(entity, document.strings); return table; } getCount() { return this.entityTable.getCount(); } async get(groupIndex) { return await Group.createFromTable(this, groupIndex); } async getAll() { const localTable = await this.entityTable.getLocal(); let groupType; let position_X; let position_Y; let position_Z; let elementIndex; await Promise.all([ (async () => { groupType = (await localTable.getStringArray("string:GroupType")); })(), (async () => { position_X = (await localTable.getNumberArray("float:Position.X")); })(), (async () => { position_Y = (await localTable.getNumberArray("float:Position.Y")); })(), (async () => { position_Z = (await localTable.getNumberArray("float:Position.Z")); })(), (async () => { elementIndex = (await localTable.getNumberArray("index:Vim.Element:Element")); })(), ]); let group = []; const rowCount = await this.getCount(); for (let i = 0; i < rowCount; i++) { group.push({ index: i, groupType: groupType ? groupType[i] : undefined, position_X: position_X ? position_X[i] : undefined, position_Y: position_Y ? position_Y[i] : undefined, position_Z: position_Z ? position_Z[i] : undefined, elementIndex: elementIndex ? elementIndex[i] : undefined }); } return group; } async getGroupType(groupIndex) { return (await this.entityTable.getString(groupIndex, "string:GroupType")); } async getAllGroupType() { return (await this.entityTable.getStringArray("string:GroupType")); } async getPosition_X(groupIndex) { return (await this.entityTable.getNumber(groupIndex, "float:Position.X")); } async getAllPosition_X() { return (await this.entityTable.getNumberArray("float:Position.X")); } async getPosition_Y(groupIndex) { return (await this.entityTable.getNumber(groupIndex, "float:Position.Y")); } async getAllPosition_Y() { return (await this.entityTable.getNumberArray("float:Position.Y")); } async getPosition_Z(groupIndex) { return (await this.entityTable.getNumber(groupIndex, "float:Position.Z")); } async getAllPosition_Z() { return (await this.entityTable.getNumberArray("float:Position.Z")); } async getElementIndex(groupIndex) { return await this.entityTable.getNumber(groupIndex, "index:Vim.Element:Element"); } async getAllElementIndex() { return await this.entityTable.getNumberArray("index:Vim.Element:Element"); } async getElement(groupIndex) { const index = await this.getElementIndex(groupIndex); if (index === undefined) { return undefined; } return await this.document.element?.get(index); } } exports.GroupTable = GroupTable; class DesignOption { static async createFromTable(table, index) { let result = new DesignOption(); result.index = index; await Promise.all([ table.getIsPrimary(index).then(v => result.isPrimary = v), table.getElementIndex(index).then(v => result.elementIndex = v), ]); return result; } } exports.DesignOption = DesignOption; class DesignOptionTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.DesignOption"); if (!entity) { return undefined; } let table = new DesignOptionTable(); table.document = document; table.entityTable = new entityTable_1.EntityTable(entity, document.strings); return table; } getCount() { return this.entityTable.getCount(); } async get(designOptionIndex) { return await DesignOption.createFromTable(this, designOptionIndex); } async getAll() { const localTable = await this.entityTable.getLocal(); let isPrimary; let elementIndex; await Promise.all([ (async () => { isPrimary = (await localTable.getBooleanArray("byte:IsPrimary")); })(), (async () => { elementIndex = (await localTable.getNumberArray("index:Vim.Element:Element")); })(), ]); let designOption = []; const rowCount = await this.getCount(); for (let i = 0; i < rowCount; i++) { designOption.push({ index: i, isPrimary: isPrimary ? isPrimary[i] : undefined, elementIndex: elementIndex ? elementIndex[i] : undefined }); } return designOption; } async getIsPrimary(designOptionIndex) { return (await this.entityTable.getBoolean(designOptionIndex, "byte:IsPrimary")); } async getAllIsPrimary() { return (await this.entityTable.getBooleanArray("byte:IsPrimary")); } async getElementIndex(designOptionIndex) { return await this.entityTable.getNumber(designOptionIndex, "index:Vim.Element:Element"); } async getAllElementIndex() { return await this.entityTable.getNumberArray("index:Vim.Element:Element"); } async getElement(designOptionIndex) { const index = await this.getElementIndex(designOptionIndex); if (index === undefined) { return undefined; } return await this.document.element?.get(index); } } exports.DesignOptionTable = DesignOptionTable; class Level { static async createFromTable(table, index) { let result = new Level(); result.index = index; await Promise.all([ table.getElevation(index).then(v => result.elevation = v), table.getFamilyTypeIndex(index).then(v => result.familyTypeIndex = v), table.getBuildingIndex(index).then(v => result.buildingIndex = v), table.getElementIndex(index).then(v => result.elementIndex = v), ]); return result; } } exports.Level = Level; class LevelTable { static async createFromDocument(document) { const entity = await document.entities.getBfast("Vim.Level"); if (!entity) { return undefined;