Get Started

Cora Agent Documentation

Ready-to-use configurations for the Cora Agent platform. Install the Revit plugin, integrate AI tools, customize commands, and leverage automation to enhance your workflow.

Transform Your Development Workflow

Cora Agent is a comprehensive collection of ready-to-use AI tools and commands for Revit. Install the plugin, automate workflows, and integrate external intelligence directly into your models.


Installation Steps

Set up Cora Agent once, then reuse the workflow across projects. Four steps to your first tool run.

  1. 1

    Download the Revit plugin

    Grab the latest MSI installer for Revit 2024, 2025, 2026, or 2027.

  2. 2

    Install and launch

    Run the installer, open Revit, and confirm the Cora panel appears in the Add-Ins tab.

  3. 3

    Create your user

    Sign up with email/password or Google OAuth directly from the plugin.

  4. 4

    Run your first command

    Open the Cora panel and type a natural language request like "Create 5 levels at 3.5m spacing".


What's Included

Cora Agent ships with 237 tools across 14 categories, spanning the C# Revit plugin and the Python backend.


Key Features

🤖

Multi-Model AI

GPT-5 family, Claude Sonnet & Opus, Gemini, and Ollama local models — switch per task for optimal results.

237+ BIM Tools

Modeling, documentation, analysis, views, sheets, GIS, and automation.

🧠

RAG Knowledge Base

Upload documents and search with semantic pgvector embeddings.

🚪

Hosted Elements

Create doors, windows, floors, roofs, railings from natural language.

🏠

Room Intelligence

Room geometry queries and contextual spatial grounding for agents.

🎥

AI Media Generation

Images (GPT-Image, Gemini) and videos (MiniMax Hailuo, Google Veo 3.1) from prompts.

💻

Code Workspace

Built-in environment to create, test, and run C# automations with the Roslyn compiler.

🔌

MCP Extensibility

Extend capabilities with Model Context Protocol integrations.


Tool Catalog

237 user-facing tools across 14 categories. Click any tool in the sidebar for quick navigation.

🧱

Modeling & creation

29

Create and edit core model elements quickly.

create_level

Create a new level with the given name and elevation.

create_levels_batch

Create a batch of levels with base elevation, count, spacing, and name format.

create_levels_custom

Create multiple custom levels, each with a name and elevation.

create_grids

Create one or more Revit grids from line axes with idempotent duplicate detection.

create_mass_box

Create one or many conceptual mass boxes.

update_mass_shape

Update an existing mass box or polygon by element id; rebuilds geometry and optionally renames.

list_masses

List mass elements created by Cora, with optional nearest level and bounding box.

create_toposolid

Create a toposolid from points, resolving type and level automatically.

create_line_based_element

Create one or more line-based elements (walls, beams, etc.) in millimetre units.

create_point_based_element

Create one or more point-based elements (furniture, fixtures, etc.) by coordinates.

create_model_lines

Create model lines from line segments in a resolved sketch plane.

create_model_text

3D model text at points with configurable height and depth.

create_surface_based_element

Create floors, roofs, or ceilings from boundary loops.

create_wall_core_batch

Create rectangular concrete structural cores as wall batches.

create_wall_openings

Create generic rectangular wall openings hosted by explicit wall ids.

create_openings_batch

Create safe hosted door/window openings; returns failed instead of falling back to dynamic code.

create_stairs

Create straight stair runs from start/end points, width, and level data.

create_ramps

Create straight ramp elements from start/end points, width, and slope.

create_model_groups

Create model groups from existing elements or place existing group types.

select_elements

Select elements in Revit by element ids.

resolve_model_elements

Resolve ambiguous references to existing model elements, with candidates and confidence.

update_element_dimensions

Update writable dimensional parameters — width, depth, height, length.

update_element_level

Change the level of existing elements when a writable level parameter exists.

update_element_location

Move existing elements by delta XYZ or to a target bounding-box center.

update_parameters

Inspect and batch-update element parameters, returning a detailed report.

rotate_element

Rotate an existing element by a specified angle.

delete_element

Delete an existing element from the model.

change_element_type

Swap an existing element to a different type.

rollback_last_action

Undo the most recent agent-performed action.

🚪

Hosted elements

14

Create doors, windows, floors, roofs, railings, and curtain walls from natural language.

create_doors

Create hosted door instances, auto-resolving host walls when not provided.

create_windows

Create hosted window instances, auto-resolving host walls when not provided.

create_floors

Create floors from boundary loops.

create_floor_from_room_union

Create a floor from the exterior loop of a room layout proposal.

create_roofs

Create roofs from boundary loops.

create_railings

Create railings from line-segment paths, auto-resolving level and type.

create_curtain_box_perimeter

Create curtain wall perimeter from line-segment paths for glazed envelope boxes.

create_curtain_grid

Add vertical and/or horizontal grid lines to existing curtain walls.

create_curtain_mullions

Add mullions to existing curtain grid lines.

create_curtain_wall_box_batch

Create curtain wall perimeters for rectangular glazed boxes in batch.

create_rectangular_floor_slab_batch

Create rectangular concrete floor slabs for stacked-box BIM concepts.

create_room_surfaces

Create floors, ceilings, or roofs from Room perimeters, using Room Finish data as hints.

find_doors_without_rooms

Find doors not associated with any room.

find_windows_without_host

Find windows missing a valid host wall.

📋

Documentation & sheets

20

Build documentation outputs and sheet sets.

create_sheet

Create a sheet with an optional sheet number and title block type.

create_sheets_batch

Create multiple sheets in a single call with a shared default title block.

create_sheets_from_views_batch

Create or reuse sheets for planned documentation views.

create_detail_callout_on_sheet

Create a padded detail callout between two grids and place it on a sheet.

place_views_on_sheet

Place one or more existing views onto an existing sheet, with auto or fit-to-sheet layout.

place_views_on_sheets_batch

Place multiple views across multiple sheets in one batch.

place_views_on_sheets_preview

Preview placement of views on sheets without mutating the model.

list_sheets

List sheets with number, name, title block, and placed view count.

list_sheet_export_context

Read sheet export context: schedules, print setups, revisions, and naming data.

list_titleblocks

List title blocks loaded in the project, including inferred paper size (A0-A4).

resolve_titleblock

Resolve an ambiguous title block request into loaded candidates.

open_sheet

Open an existing sheet by id, number, or name for the user.

export_sheets_to_pdf

Export approved sheets to separate PDF files using previewed filenames.

preview_sheet_export_names

Preview export filenames for sheets, detecting duplicates and invalid characters.

preview_sheet_model_name_updates

Preview model updates derived from sheet export naming.

apply_sheet_model_name_updates

Apply approved sheet naming updates to existing sheet fields or parameters.

suggest_sheet_naming_standard

Suggest sheet export naming templates from a delivery intent.

propose_sheet_name_translations

Generate a structured proposal for translating sheet names.

verify_documentation_package

Verify expected sheets exist and expected views are placed on them.

rename_sheets_by_standard

Batch-rename sheets according to a naming standard.

🧭

Views & scope

45

Create views, scope boxes, view templates, and camera perspectives.

create_3d_view_by_scope_box

Create 3D views scoped to Scope Boxes for specific levels.

create_level_3d_view

Create a section-boxed 3D view for a target level.

create_elevation_view

Create an elevation view for a level.

create_interior_elevations

Create interior elevation views (N/S/E/W) scoped to a Scope Box.

create_floor_plan_view

Create a floor plan view, optionally with a Scope Box, view template, and scale.

create_floor_plan_views_batch

Create floor plan views for a list of level names.

create_ceiling_plan_view

Create a reflected ceiling plan view for a level.

create_section_view

Create a section view for a level, optionally centered on a Scope Box.

create_documentation_views_batch

Create floor plan and RCP views in batch, with template and scale options.

capture_viewset_for_level

Capture plan, elevation, section, and 3D views for one level and persist screenshots.

create_scopebox_by_room

Create Scope Boxes from Rooms, with optional margin and Z offsets.

list_scope_box

List all Scope Boxes in the project with their full geometry.

create_room_camera_views

Create interior camera (perspective) views for specific rooms.

list_views

List views with template, scope box, scale, and crop state.

list_view_templates

List all view templates available in the project.

list_view_template_properties

List view template properties: scale, detail level, and display style.

resolve_views

Resolve ambiguous view references into concrete view ids.

resolve_view_template

Resolve an ambiguous view template request into concrete candidates.

create_view_template_from_view

Create a view template from an existing view.

duplicate_view_template

Duplicate an existing view template into a new template name.

update_view_properties

Update view template, scale, scope box, and crop region on existing views.

update_view_template_properties

Update view template name, scale, detail level, and display style.

set_view_template

Apply or remove a view template from one or more views.

apply_view_template_batch

Apply or remove view templates across multiple groups of views in one batch.

open_view

Open an existing view by id or name for the user.

rename_views

Rename existing views by id or exact name.

rename_views_preview

Preview old-name to new-name mapping for renaming views.

get_current_view_elements

Return elements from the active view (host and visible links), optionally filtered by category.

analyze_current_view

Capture the active view as an image and analyze it with a multimodal model.

analyze_dimension_context

Capture a 2D view and visible element metadata for dimension planning.

plan_dimension_layout

Plan candidate dimension layouts for a view without mutating the model.

preview_dimension_layout

Preview a dimension layout without creating dimensions.

verify_dimension_layout

Verify dimension preview or created dimensions against the requested scope.

create_dimension

Auto-dimension the active view according to a preset (openings, walls_outline).

capture_active_view

Capture the active view as an image for AI analysis.

capture_3d_view

Capture a 3D view as an image for AI analysis.

capture_sheet

Capture a sheet as an image for AI analysis.

create_view_snapshot

Capture a named view snapshot as an image.

zoom_to_element

Zoom the active view to focus on a specific element.

isolate_elements

Temporarily isolate elements in the active view.

hide_elements_temporarily

Temporarily hide elements in the active view.

align_viewports

Align viewports across multiple sheets.

duplicate_view_with_detailing

Duplicate a view including its detailing.

assign_scope_box_to_views

Assign a Scope Box to one or more views.

rename_views_by_standard

Batch-rename views according to a naming standard.

🔎

Analysis & QA

41

Inspect the model, validate against standards, and surface warnings or anomalies.

view_warnings

List and prioritize model warnings grouped by severity.

scan_model

Scan model categories, schedules, and warnings for a full inventory.

get_model_metadata

Build a normalized metadata snapshot from a model scan.

export_model_metadata

Export model metadata to JSON for AI context snapshots and audits.

import_model_metadata

Import a metadata snapshot and compare it against a live model scan.

validate_level_composition

Validate one modeled level and return standardized blocking/warning issues.

autofix_level_issues

Apply safe, non-destructive auto-fixes for level composition issues.

model_level_checkpoint

Orchestrate level modeling with capture, validation, autofix, and pass/fail gate.

verify_after_mutation

Run declared read-only verification tools after a mutation phase.

verify_elements_geometry

Verify existence, category, level, and bounding-box dimensions of elements.

verify_bim_geometry_package

Verify expected levels, slabs, curtain walls, and structural core elements.

preview_batch_mutation

Summarize intended batch mutations before approval.

summarize_pending_changes

Combine mutation previews into a single approval summary.

transaction_log

Read recent backend command and run history.

load_office_standard

Load an office-standard JSON payload for later standards validation.

organize_project_browser

Preview or apply office Project Browser organization rules.

get_current_project_browser

Read the active Project Browser organization without modifying the model.

compare_before_after_images

Compare two image payloads and return a deterministic diff summary.

detect_visual_issues

Inspect captured-view metadata and return visual QA issue candidates.

verify_room_layout_program

Verify created rooms against a target room program and area tolerance.

audit_model_health

Run a full model health audit across categories.

generate_qaqc_report

Generate a QA/QC report for the model.

find_elements_without_required_parameters

Find elements missing required parameter values.

find_missing_type_marks

Find element types missing a Type Mark value.

find_invalid_fire_rating_values

Find elements with invalid fire rating values.

find_duplicate_instances

Find duplicate element instances in the model.

find_overlapping_walls

Find walls that geometrically overlap.

find_unassigned_materials

Find elements missing an assigned material.

find_in_place_families

Find in-place family instances in the model.

group_warnings_by_type

Group model warnings by type for triage.

validate_view_names

Validate view names against a naming standard.

validate_sheet_names

Validate sheet names against a naming standard.

validate_family_names

Validate family names against a naming standard.

validate_worksets

Validate workset assignment against a standard.

validate_parameters_against_standard

Validate parameter values against an office standard.

validate_line_styles

Validate line styles against a standard.

validate_material_names

Validate material names against a standard.

validate_browser_organization

Validate Project Browser organization against a standard.

suggest_standard_fixes

Suggest fixes for detected standard violations.

apply_standard_fixes

Apply approved fixes for standard violations.

generate_compliance_score

Generate a compliance score summarizing standard adherence.

📚

Data & lists

37

Query model data, manage parameters, and generate schedules.

list_categories

List categories with built-in ids, type, and optional element counts.

list_family_types

List loaded family/type definitions by category, family, and type name.

list_levels

List all levels with their elevations.

list_materials

List materials with ids, names, class, and optional usage counts.

list_model_elements

List elements by category, name, level, type, and bounding box.

list_parameters

List parameters available on selected/filter-matched elements.

get_elements_by_category

Query elements by category and return selected parameter values.

find_elements

Stateless model element search by id, category, level, type, bbox, or parameter filters.

get_schedules

Return schedules with their columns and rows.

create_schedule

Create a schedule with a specified category, fields, and optional grouping/sorting.

filter_schedule

Filter schedule rows by a parameter condition.

sort_schedule

Sort schedule rows by a chosen field.

group_schedule

Group schedule rows by a chosen field.

add_schedule_field

Add a field to an existing schedule.

remove_schedule_field

Remove a field from an existing schedule.

export_schedule_to_excel

Export a schedule to an Excel file.

compare_schedule_versions

Compare two versions of a schedule for changes.

generate_quantity_summary

Generate a quantity takeoff summary by category.

generate_door_schedule

Generate a door schedule with standard fields.

generate_room_schedule

Generate a room schedule with standard fields.

generate_window_schedule

Generate a window schedule with standard fields.

generate_material_takeoff

Generate a material takeoff summary.

get_parameter_schema

Get the parameter schema for a category or family.

find_parameter_by_name

Find elements by a specific parameter name and value.

bulk_set_parameter

Set a parameter value across many elements at once.

copy_parameter_value

Copy a parameter value from one element to others.

map_parameters_between_elements

Map parameter values between related elements.

validate_parameter_values

Validate parameter values against expected rules.

normalize_parameter_text

Normalize text formatting across a parameter's values.

assign_classification_code

Assign a classification code (Uniclass/Omniclass) to elements.

assign_fire_rating

Assign a fire rating parameter to elements.

assign_phase_parameter

Assign a construction phase parameter to elements.

import_parameter_matrix

Import a parameter value matrix from a file.

export_parameter_matrix

Export a parameter value matrix to a file.

get_elements_by_level

Get elements filtered by a specific level.

get_element_properties

Get built-in properties for specific elements.

get_element_parameters

Get parameter values for specific elements.

🖼️

Media & AI generation

5

Generate or capture visual outputs with AI models.

create_image

Generate concept images with OpenAI GPT-Image or Gemini image models, optionally targeting a specific view.

generate_video

Generate a video from an image using MiniMax Hailuo or Google Veo models.

analyze_reference_image

Analyze an uploaded reference image for downstream BIM modeling — scale, rooms, and openings.

generate_render_prompt_from_view

Generate a rendering prompt from view and capture metadata.

generate_design_variation_from_view

Generate design-variation prompts from a captured view.

🏠

Rooms & spatial

16

Create and query room geometry and contextual spatial data.

create_areas

Place areas by point in a resolved area plan view.

create_area_boundaries

Create area boundary lines from line segments.

create_rooms

Place rooms by point or boundary centroid on a resolved level.

create_room_separators

Create room separation lines from line segments.

create_room_layout_from_program

Create a full room layout from a program: separators, rooms, verification, and tags.

generate_space_layout

Generate a deterministic room layout proposal from a program with target area — preview-only.

list_rooms

List rooms with number, name, level, area, perimeter, and bounding box.

get_room_geometry

Get room geometry summary: area, perimeter, level, and boundary loops.

analyze_spatial_relationships

Read-only spatial relationship analysis for rooms and areas.

query_rooms_contextual

Find and rank room candidates using query text plus current Revit context.

tag_rooms

Tag rooms by id, selector, or active selection.

tag_areas

Tag areas by id, selector, or active selection.

assign_department_to_rooms

Assign a department parameter to rooms.

find_unplaced_rooms

Find rooms that are not placed in the model.

find_unbounded_rooms

Find rooms missing valid boundaries.

sync_room_data_to_doors

Sync room data onto adjacent door parameters.

🧠

Knowledge & RAG

2

Upload documents and search your organization's knowledge base.

search_knowledge_base

Semantic search across uploaded PDFs and Word docs using pgvector embeddings.

🛰️

GIS & CAD import

10

Import and analyze geospatial and CAD reference data.

gis_inspect_dataset

Inspect a GIS dataset, returning layers, CRS, bounds, and schema.

gis_filter_layer

Filter a GIS layer by bounding box and/or attribute.

gis_transform_crs

Reproject a GIS layer to a target coordinate reference system.

gis_analyze_layer

Analyze a GIS layer for bounds, geometry types, and totals.

gis_export_dxf

Export a GIS layer to DXF on a named CAD layer.

gis_prepare_revit_package

Prepare a Cora GIS Revit package (DXF plus manifest).

import_gis_revit_package

Preview or create native Revit model curves from a GIS Revit package.

import_cad_reference

Preview or apply a CAD (DXF/DWG) reference import or link.

cad_inspect_topography

Inspect a topographic CAD file for usable 3D points and contours.

cad_prepare_toposolid_package

Extract normalized 3D points from a topographic CAD file for a toposolid.

⚙️

Code & automation

3

Code execution, saved workflows, and advanced utilities.

send_code_to_revit

Compile and run arbitrary C# against the active document via the Roslyn compiler.

run_saved_workflow

Run a saved workflow template through already-registered tools.

save_workflow_template

Save an agentic workflow template as local JSON without executing it.

🔁

IFC interoperability

10

Export, validate, and map Revit data against IFC classes.

read_ifc_file

Read a bounded IFC text file and summarize entity classes.

query_ifc_elements

Query IFC text by entity class or name without mutating Revit.

export_ifc

Export the model or selection to IFC.

inspect_ifc_mapping

Inspect Revit-category-to-IFC-class mapping.

validate_ifc_classes

Validate assigned IFC export classes.

find_elements_missing_ifc_class

Find elements missing an IFC export class.

assign_ifc_export_class

Assign an IFC export class to elements.

compare_revit_vs_ifc_counts

Compare Revit and IFC element counts for a consistency check.

map_revit_category_to_ifc_class

Map a Revit category to an IFC class.

generate_ifc_validation_report

Generate an IFC export validation report.

📤

Reporting & export

4

Generate reports and exportable documents from BIM data.

export_to_word

Generate a bounded Word (.docx) artifact from report text.

export_to_powerpoint

Generate a bounded PowerPoint (.pptx) artifact from report text.

generate_dynamo_script

Generate an editable Dynamo (.dyn) artifact with a Python Script node.

compose_bim_notion_report

Compose a Notion-ready BIM report from completed read-only tool results.

🛠️

Utility

1

Small utility tools used across workflows.

get_current_datetime

Get the current date and time, with timezone.


Command Library

Use these prompts as starting points. Cora Agent understands multilingual input — type in your preferred language.

Prompt

Create dimensions for openings on the active view with a 400mm offset.

Prompt

Create 5 levels from Level 0 with 3.5m spacing.

Prompt

Analyze the current view and summarize key elements and warnings.

Prompt

Generate a concept image based on the active Revit view.

Prompt

Generate a 5s video of this space using Veo 2.0.

Prompt

Search my uploaded documents for fire resistance standards.

Prompt

Execute C# code to count all wall elements in the model.

Prompt

Create a schedule for all doors with width and height parameters.

Prompt

Search the web for the latest Revit 2026 API changes.


Tutorials

Short, focused walkthroughs to help your team adopt automation quickly.

8 min

Auto dimensions with presets

Use create_dimension to tag openings or wall outlines with offsets.

6 min

Batch levels in minutes

Run create_levels_batch and verify naming and spacing.

9 min

Model health review

Combine analyze_current_view and view_warnings for QA.

7 min

RAG document upload

Upload project standards as PDF/DOCX and ask questions using natural language.

5 min

Generate project video

Use generate_video to create a conceptual walkthrough with Veo 2.0.

10 min

Execute custom C# code

Use send_code_to_revit with Roslyn to automate any Revit API operation.


Support

Need help troubleshooting or planning an automation? Reach the team below.

Email support

Send a note to contact@coraagent.xyz with a brief description.

Community

Join the community channels for shared prompts, tips, and office hours.


Updates

Keep track of releases, new tools, and upcoming improvements.

LatestJuly 2026

Agent run lifecycle, GIS tools, and IFC interoperability

Agent runs can now resume, be approved, or be cancelled mid-flight, with the plugin UI reflecting live run state. New GIS toolset (dataset inspection, CRS reprojection, DXF export, Revit package import) and a full IFC interoperability suite for export, class mapping, and validation. Continued hardening of the LangGraph orchestration core and MCP connections. Tool catalog now spans 230+ tools across modeling, documentation, analysis, GIS, and IFC.

PreviousSince our last public update

Revit 2027, Code Workspace, room intelligence, and hosted elements

Full Revit 2027 API support alongside 2024-2026. New Code Workspace for creating, testing, and running C# automations with the Roslyn compiler. Room-grounded context for spatial queries, Ollama provider for local open-source models, and a full hosted element pipeline (doors, windows, floors, roofs, railings, curtain walls). Sheet naming and translation workflows for documentation delivery.

Roadmap briefs

Follow the short roadmap posts to see what the team is building next: DeepSeek integration, voice mode, web dashboard, and advanced analytics.


What's Next?