vim-webgl-component
Version:
A demonstration app built on top of the vim-webgl-viewer
1,099 lines (1,098 loc) • 280 kB
JavaScript
"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;