سطر الأوامر و MCP
كل ما تفعله في BIMopen هو أمر. فالنقر على جدار ثم نقطتين في المسقط ينفذ الأمر wall نفسه
الذي يمكنك كتابته بنفسك. يصف هذا الفصل سطر الأوامر في النافذة، وبرنامج bimopen-cli الذي ينفذ
الأوامر نفسها دون نافذة، وخادم MCP الذي يستطيع من خلاله وكيل ذكاء اصطناعي أن ينمذج مشروعًا ويفحصه
ويعرضه صورةً.
سطر الأوامر في النافذة
يقع سطر الأوامر تحت منطقة الرسم. جزؤه العلوي هو السجل؛ وصفه الأخير هو حيث تكتب.
- لا تحتاج إلى النقر عليه أولًا: فكل ما تكتبه ما دام لا يُحرَّر حقل آخر يذهب إليه.
- ينفذ Enter السطر. ويُعاد عرض الأمر في السجل بعد
>، متبوعًا بنتيجته؛ ويُعرض الخطأ بالأحمر ولا يغيّر شيئًا. - يستعيد Up وDown الأسطر المكتوبة من قبل.
- على يمين الصف، تقول المطالبة ما هو منتظر:
Command:حين لا تكون هناك أداة نشطة، أو طلب الأداة النشطة، مثلWALL next point [Esc to finish]:. - يسرد
helpكل أمر مع سطر من الوصف؛ ويعرضhelp wallطريقة استخدام أمر واحد. ويقوم ? ▸ الأوامر في شريط العنوان بما يقوم بهhelp.
الاختصارات المكتوبة تبدأ الأدوات
الأمر المكتوب دون وسائط يبدأ الأداة التفاعلية، كما لو نقرت زرها:
WA (أو wall) يبدأ أداة الجدار، وDR أداة الباب، وVG يفتح الرؤية/الرسومات. والأمر نفسه
مع وسائط ينجز العمل فورًا، دون الأداة: wall 0,0 5,0 يرسم جدارًا من نقطة الأصل حتى 5 m على
امتداد x.
أسماء الأوامر وصيغها المختصرة ووسائطها واحدة في كل لغات الواجهة؛ ويقبل معظمها أيضًا اسمًا
إيطاليًا، مثل muro بدل wall. أما أسماء المعاملات وأسماء الأنواع وأسماء العروض فتتبع لغة
الواجهة: ففي الإنجليزية تكتب set Unconnected Height 2.7m، وفي الإيطالية set Altezza non collegata 2.7m.
ويسرد فصل اختصارات لوحة المفاتيح كل صيغة مختصرة.
النقاط والأطوال
| تكتب | المعنى |
|---|---|
3,4 |
النقطة x = 3 m، y = 4 m |
@2,0 |
2 m على امتداد x و0 على امتداد y من النقطة السابقة |
@4<90 |
4 m من النقطة السابقة، بزاوية 90° (الزوايا عكس اتجاه عقارب الساعة من المحور x) |
2.7m، 270cm، 2700mm |
طول مع وحدته |
2.7 أو 2,7 |
طول بالأمتار: في سطر الأوامر الرقم بلا وحدة يكون بالأمتار |
مثلًا، يرسم wall 0,0 @6,0 @4<90 0,4 c مستطيلًا مقاسه 6 × 4 m؛ والحرف c في النهاية يغلقه.
Warning
في سطر الأوامر يعني set Unconnected Height 2700 ارتفاعًا قدره 2700 متر. اكتب الوحدة:
2700mm. أما في لوحة الخصائص فالرقم بلا وحدة يكون بوحدات المشروع، أي المليمترات في
مشروع جديد.
الوسائط بصيغة JSON
يقبل كل أمر وسائطه أيضًا ككائن JSON، ما يتيح الوصول إلى كل خياراته.
ويسردها سطر الاستخدام في help:
wall 0,0 10,0 {"height":3.2,"location":"Linea d'asse del muro"}
roof walls {"slope":30,"overhang":0.5}
sheet A102 Plans {"title_block":"A3"}
export doors.csv {"schedule":"doors"}
أوامر ستستخدمها كثيرًا
| الأمر | ما يفعله |
|---|---|
new، sample |
مشروع جديد، المشروع النموذجي |
open house.bimopen، save house.bimopen |
يفتح مشروعًا ويحفظه |
undo، redo |
يتراجع عن آخر تعديل ويعيده |
view 3d، view Ground Floor |
يفتح العرض ثلاثي الأبعاد الافتراضي، أو مسقط منسوب |
wall، door، window، floor، roof |
عناصر النموذج: اطّلع على طريقة الاستخدام عبر help |
select walls، select all، deselect |
يحدد حسب الفئة، أو كل شيء، أو لا شيء |
set <parameter> <value> |
يضبط معاملًا من معاملات التحديد، كما في لوحة الخصائص |
type <type name> |
يغيّر نوع التحديد، أو نوع العنصر التالي |
move 1,0، copy 0,3، rotate 90 |
يعدّل التحديد |
delete |
يحذف التحديد |
list walls، params 102، info |
يسرد العناصر، أو معاملات أحدها، أو ملخصًا للمشروع |
schedule doors |
يعرض جدولًا في سطر الأوامر |
export house.ifc |
يصدّر IFC أو SVG أو PNG أو CSV، حسب امتداد الملف |
لكل عنصر رقم، هو معرّفه، يُعرض بين قوسين بعد إنشائه:
Door «Single swing door 80x210» in wall 102 (106). وتقبله الأوامر حيث تحتاج إلى
عنصر: params 106، delete 106.
bimopen-cli
يشغّل bimopen-cli برنامج BIMopen دون نافذة: لتحويل الملفات، أو لبناء مشروع من برنامج نصي، أو
لفحص نموذج، أو لخدمة الوكلاء عبر MCP. ابنِه بالأمر
cargo build --release -p bimopen-cli.
bimopen-cli info <file>
bimopen-cli convert <in> <out> [--level NAME] [--view 3d] [--schedule walls|doors|windows|floors|rooms|materials]
bimopen-cli run [<file> | --sample] [--cmd LINE]… [--script FILE] [--save FILE] [--export FILE]…
bimopen-cli commands
bimopen-cli mcp [<file> | --sample]
| الأمر الفرعي | ما يفعله |
|---|---|
info <file> |
ملخص للمشروع، وبصيغة JSON مناسيبه وأعداد عناصره وعرضه النشط |
convert <in> <out> |
يفتح <in> (.bimopen أو .rvt) ويكتب <out>: .ifc، أو .svg أو .png لمسقط (أدنى منسوب، أو --level)، أو .png للعرض ثلاثي الأبعاد (--view 3d)، أو .csv لجدول (--schedule)، أو .bimopen |
run |
يفتح ملفًا، أو النموذج، أو مشروعًا جديدًا، ثم ينفذ الخيارات بالترتيب: --cmd سطرًا واحدًا، و--script ملفًا من الأسطر (تُتخطى الأسطر الفارغة والأسطر التي تبدأ بـ #)، و--save و--export ملفًا |
commands |
كل أمر، مع وصفه وطريقة استخدامه |
mcp |
خادم MCP على الدخل والخرج القياسيين |
--version |
الإصدار |
تكون الرسائل بلغة متغير البيئة BIMOPEN_LANG (it، en، de،
fr، es، ar)، أو بلغة النظام (LANG)، أو بالإيطالية. وينتهي bimopen-cli بالرمز 0 حين
ينجح كل شيء، و1 حين يفشل أمر (وتقول الرسالة أيّها)، و2 حين تكون الوسائط خاطئة (فيطبع طريقة
الاستخدام).
export BIMOPEN_LANG=en
bimopen-cli run --script house.txt --save house.bimopen --export house.ifc
bimopen-cli convert house.bimopen plan.svg
bimopen-cli convert house.bimopen doors.csv --schedule doors
bimopen-cli convert house.bimopen first.png --level "First Floor"
bimopen-cli convert house.bimopen house-3d.png --view 3d
bimopen-cli convert project.rvt project.bimopen
البرنامج النصي ملف نصي فيه أمر واحد في كل سطر، تمامًا كما يُكتب في سطر الأوامر:
تُكتب الجداول بصيغة CSV مع ; بين الأعمدة، والعناوين بلغة الرسائل، وصف للإجمالي في النهاية.
MCP: BIMopen لوكلاء الذكاء الاصطناعي
يتيح بروتوكول سياق النموذج (MCP) لوكيل الذكاء الاصطناعي أن يستخدم البرامج كأدوات. وbimopen-cli mcp
خادم MCP: يتحدث JSON-RPC 2.0 على الدخل والخرج القياسيين، رسالة واحدة في كل سطر،
ويُبقي مشروعًا واحدًا مفتوحًا طوال المحادثة. ودون ملف يبدأ من مشروع جديد؛
أما --sample فيبدأ من المنزل النموذجي.
لإضافته إلى وكيل، أعطِ الوكيل الأمر الذي يشغّله. مثلًا، في Claude Code:
أو، في عميل يُهيَّأ بصيغة JSON:
يقدّم الخادم سبع أدوات:
| الأداة | الوسائط | ما تفعله |
|---|---|---|
command_line |
line |
تكتب سطرًا في سطر الأوامر، تمامًا كما يفعل الشخص |
execute |
command، args |
تنفذ أمرًا مع وسائطه بصيغة JSON |
inspect_model |
– | ملخص: المناسيب، وأعداد العناصر، والعرض النشط، والتحديد |
query_elements |
category (اختياري) |
العناصر، مع المعرّف والفئة والاسم: walls، doors، windows، floors، rooms، roomseps، grids، levels، types |
get_params |
id |
كل معاملات عنصر |
schedule |
kind |
جدول: walls أو doors أو windows أو floors أو rooms أو materials |
render |
view، width، height، yaw، pitch |
صورة PNG لعرض: 3d، أو اسم منسوب لمسقطه، أو اسم مقطع أو واجهة أو عرض تفصيلي مستدعى أو عرض رسم، أو رقم لوحة أو اسمها؛ ويديران yaw وpitch كاميرا العرض ثلاثي الأبعاد، بالدرجات |
تحمل الإجابات رسالة الأمر، وبياناته بصيغة JSON حين توجد، مثل معرّفات العناصر المنشأة. ويستطيع الوكيل أن يفحص عمله بنفسه بطلب صورة.
Tip
اطلب من الوكيل أن يعرض المسقط والعرض ثلاثي الأبعاد صورةً بعد كل خطوة: فيرى ما بناه ويصحّح نفسه.