Vistas
Un
ArchiView
es una definición de diagrama/vista de Archi (un archimate:ArchimateDiagramModel):
el contenedor que une los objetos visuales.
Atributos nativos
Sección titulada «Atributos nativos»interface ArchiView { viewpoint: string | null; // e.g. "layered", "organization" connectionRouterType: number | null; // 0 = manual bendpoints, 2 = orthogonal}viewpointes el código interno en minúsculas de Archi — no un nombre legible por humanos.nullcuando no está establecido (el valor por defecto del propio Archi es una cadena vacía, que significa “sin restricción de punto de vista”).connectionRouterTypese preserva como el número nativo crudo en lugar de decodificarse a una enumeración con nombre: su significado es específico de la interfaz de Archi y la numeración ya ha cambiado una vez en el código fuente de Archi (un valor1fue reservado y eliminado).nullcuando está ausente (el valor por defecto de Archi es0).
Índices de contención precalculados
Sección titulada «Índices de contención precalculados»El XML nativo expresa la contención solo mediante anidamiento.
parseArchiModel realiza una pasada de derivación O(n) adicional para que
cada vista ya tenga precalculados los ids de sus hijos, en orden de origen —
sin necesidad de recorrer árboles por parte de quien llama:
interface ArchiView { diagramObjectIds: string[]; // direct-child diagram objects (not nested) diagramConnectionIds: string[]; // every connection anywhere in the view, any nesting depth noteIds: string[]; // direct-child notes (not nested)}Ejemplo
Sección titulada «Ejemplo»const view = model.views.find((v) => v.name === 'Application Overview');if (!view) return;
for (const id of view.diagramObjectIds) { const object = model.diagramObjects.find((o) => o.id === id); console.log(object?.name, object?.xsiType);}Para búsquedas repetidas, construya un índice de ids una sola vez en lugar de
usar find en un bucle — consulte Construir índices de búsqueda.