create_ids
Create IDS documents for building information modeling that comply with the buildingSMART IDS 1.0 standard. Generate specifications with required title, author, version, and purpose details for construction projects.
Instructions
Create a new IDS document for this session.
Session is automatically tracked by FastMCP - no session_id parameter needed!
Args: title: Document title (required) ctx: FastMCP Context (auto-injected) author: Author email or name version: Version string date: Date in YYYY-MM-DD format description: Document description copyright: Copyright notice milestone: Project milestone purpose: Purpose of this IDS
Returns: { "status": "created", "session_id": "auto-generated-by-fastmcp", "title": "..." }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| author | No | ||
| version | No | ||
| date | No | ||
| description | No | ||
| copyright | No | ||
| milestone | No | ||
| purpose | No |
Implementation Reference
- Implements the core logic for creating a new IDS document. Initializes an ids.Ids object with provided metadata, stores it in the session storage, and returns creation status.async def create_ids( title: str, ctx: Context, author: Optional[str] = None, version: Optional[str] = None, date: Optional[str] = None, description: Optional[str] = None, copyright: Optional[str] = None, milestone: Optional[str] = None, purpose: Optional[str] = None ) -> Dict[str, Any]: """ Create a new IDS document for this session. Session is automatically tracked by FastMCP - no session_id parameter needed! Args: title: Document title (required) ctx: FastMCP Context (auto-injected) author: Author email or name version: Version string date: Date in YYYY-MM-DD format description: Document description copyright: Copyright notice milestone: Project milestone purpose: Purpose of this IDS Returns: { "status": "created", "session_id": "auto-generated-by-fastmcp", "title": "..." } """ try: await ctx.info(f"Creating IDS: {title}") # Create new IDS using IfcTester ids_obj = ids.Ids( title=title, author=author, version=version, date=date, description=description, copyright=copyright, milestone=milestone, purpose=purpose ) # Store in session storage = get_session_storage() session_id = ctx.session_id from ids_mcp_server.session.models import SessionData session_data = SessionData(session_id=session_id) session_data.ids_obj = ids_obj session_data.set_ids_title(title) storage.set(session_id, session_data) await ctx.info(f"IDS created successfully for session {session_id}") return { "status": "created", "session_id": session_id, "title": title } except Exception as e: await ctx.error(f"Failed to create IDS: {str(e)}") raise ToolError(f"Failed to create IDS: {str(e)}")
- src/ids_mcp_server/server.py:23-28 (registration)Registers the create_ids tool (along with related document tools) on the FastMCP server instance.# Register document management tools mcp_server.tool(document.create_ids) mcp_server.tool(document.load_ids) mcp_server.tool(document.export_ids) mcp_server.tool(document.get_ids_info)