revit-cli
Version:
A scalable CLI tool for Revit communication and data manipulation
92 lines • 2.67 kB
TypeScript
import { AxiosRequestConfig } from 'axios';
import { RevitApiResponse, RevitElement, ExtractionOptions } from '../types';
import { ConfigManager } from './config-manager';
/**
* Handles communication with Revit API
*/
export declare class RevitConnector {
private client;
private logger;
private isConnected;
constructor();
/**
* Setup request/response interceptors for logging and error handling
*/
private setupInterceptors;
/**
* Initialize the connector with configuration
*/
initialize(configManager: ConfigManager): Promise<void>;
/**
* Test connection to Revit API
*/
testConnection(): Promise<boolean>;
/**
* Get Revit project information
*/
getProjectInfo(): Promise<RevitApiResponse>;
/**
* Extract elements from Revit based on options
*/
extractElements(options: ExtractionOptions): Promise<RevitApiResponse<RevitElement[]>>;
/**
* Get elements by category
*/
getElementsByCategory(category: string): Promise<RevitApiResponse<RevitElement[]>>;
/**
* Get element by ID
*/
getElementById(elementId: string): Promise<RevitApiResponse<RevitElement>>;
/**
* Get all available categories
*/
getCategories(): Promise<RevitApiResponse<any[]>>;
/**
* Get parameters for a specific category
*/
getCategoryParameters(category: string): Promise<RevitApiResponse<string[]>>;
/**
* Execute a custom Revit API command
*/
executeCommand(command: string, parameters?: Record<string, any>): Promise<RevitApiResponse>;
/**
* Export data in specified format
*/
exportData(data: any, format?: 'json' | 'csv' | 'xml'): Promise<RevitApiResponse<string>>;
/**
* Import data from file
*/
importData(filePath: string, format?: 'json' | 'csv' | 'xml'): Promise<RevitApiResponse>;
/**
* Get Revit application status
*/
getStatus(): Promise<RevitApiResponse>;
/**
* Handle API errors consistently
*/
private handleError;
/**
* Make a custom API request
*/
request<T = any>(config: AxiosRequestConfig): Promise<RevitApiResponse<T>>;
/**
* Check if connector is connected
*/
getConnectionStatus(): Promise<{
connected: boolean;
error?: string;
}>;
/**
* Set custom headers for API requests
*/
setHeaders(headers: Record<string, string>): void;
/**
* Set authentication token
*/
setAuthToken(token: string): void;
/**
* Clear authentication
*/
clearAuth(): void;
}
//# sourceMappingURL=revit-connector.d.ts.map