Token导航 LogoToken导航TokenDH.com
Xml Revit MCP Server logo
运维云端未说明官方级别未说明来源级核验

Xml Revit MCP Server

MCP Server

用于创建和生成MCP DLL文件,供CallFunc方法调用,实现与Revit MCP服务的交互。

工具数

0

提示词数

0

GitHub Stars

4

资源数

0
C#自动化云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ZedMoster

提供方

ZedMoster

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

如何创建和生成 MCP DLL 文件以供 CallFunc 调用

本文档介绍如何创建一个 MCP DLL 文件,以供 CallFunc 方法调用。 MCP DLL 文件需要实现接口 xml.Revit.MCP.Public.IMCPMethod, 并按照 JSON-RPC 2.0 规范与 Revit 的 MCP 服务进行交互。

MCP DLL 的结构和实现

创建一个实现类

实现 IMCPMethod 接口

以下是一个实现类的示例,用于创建标高并返回新标高ElementModelRequest

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using xml.Revit.MCP.Models;
using xml.Revit.MCP.Public;
using xml.Revit.Toolkit.Attributes;
using xml.Revit.Toolkit.Extensions;
using xml.Revit.Toolkit.Utils;

namespace xml.Revit.MCPServer
{
    /// 
    /// 实现新增标高功能的类,继承自 IMCPMethod 接口。
    /// 
    public sealed class TopLevelAdd : IMCPMethod
    {
        /// 
        /// 构造函数,初始化方法名称。
        /// 
        public TopLevelAdd()
        {
            MethodName = "新增标高";
        }

        /// 
        /// 方法名称,用于标识当前功能。
        /// 
        public string MethodName { get; private set; }

        /// 
        /// 执行新增标高的核心逻辑。
        /// 
        /// 
包含请求参数的 JsonRPCRequest 对象。

        /// 
当前 Revit 的 UIDocument 对象。

        /// 返回一个 JsonRPCResponse 对象,包含执行结果。
        public JsonRPCResponse Execute(JsonRPCRequest request, UIDocument uidoc)
        {
            // 初始化响应对象
            var jsonResponse = new JsonRPCResponse();

            // 获取当前文档
            var doc = uidoc.Document;

            // 默认标高偏移量,单位为毫米
            double elevationOffset = 3000d;

            // 从请求参数中解析标高偏移量
            var obj = request.Params as JObject;
            if (obj != null)
            {
                elevationOffset = obj["offset"].Value();
            }

            // 获取文档中的最高标高
            var highestLevel = doc.OfClass().OrderBy(l => l.Elevation).LastOrDefault();
            if (highestLevel == null)
            {
                throw new InvalidOperationException("未找到有效的标高。");
            }

            // 开启事务并创建新标高
            doc.Transaction(t =>
            {
                var newLevel = Level.Create(
                    doc,
                    highestLevel.Elevation + elevationOffset.MMToFeet() // 偏移量转换为英尺
                );

                // 将新标高信息封装到响应结果中
                jsonResponse.Result = new ElementModelRequest(newLevel);
            });

            return jsonResponse; // 返回响应对象
        }
    }
}

在 Visual Studio 中编译项目,生成 .dll 文件。 编译后,确保生成的 .dll 文件位于指定的 MCP 文件夹中。 mcp-dll.png

通过以上步骤,您可以轻松创建和生成 MCP DLL 文件,并将其集成到 Revit 的 MCP 服务中进行动态调用。

通过函数名称调用功能.png

mcp-tool

call_func 点击这里源码实现

在大模型中直接通过CallFunc 按一下提示词即可实现

response = call_func(ctx, params=[
    {"name": "新增标高", "params": {"offset": 3000}}
])

目录标签

目录标签

C#自动化云端部署Revit插件本地部署DLL生成JSON-RPC建筑信息模型自动化工具

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP