mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
improved send function logic to make there be 1 function only
This commit is contained in:
@@ -36,8 +36,6 @@ class WebNamespace(socketio.AsyncNamespace):
|
||||
print(f"Web client disconnected: {sid}")
|
||||
|
||||
async def on_web_operator(self, sid, data):
|
||||
print(f"Web client {sid} operator: {data}")
|
||||
# TODO: need to add event listeners in blenderbim side for event web_operator
|
||||
await sio.emit("web_operator", data["operator"], namespace="/blender", room=data["blenderId"])
|
||||
|
||||
|
||||
@@ -59,13 +57,13 @@ class BlenderNamespace(socketio.AsyncNamespace):
|
||||
del blender_messages[sid]
|
||||
await sio.emit("blender_disconnect", sid, namespace="/web")
|
||||
|
||||
async def on_default_data(self, sid, data):
|
||||
print(f"Default data from Blender client {sid}: {data}")
|
||||
async def on_data(self, sid, data):
|
||||
print(f"Data from Blender client {sid}")
|
||||
# blender_messages[sid]["default_data"] = data
|
||||
# await sio.emit("default_data", {"blenderId": sid, "data": data}, namespace="/web")
|
||||
|
||||
async def on_csv_data(self, sid, data):
|
||||
print(f"CSV data from Blender client {sid}:")
|
||||
print(f"CSV data from Blender client {sid}")
|
||||
# Store the message and forward it to the web client
|
||||
blender_messages[sid]["csv_data"] = data
|
||||
await sio.emit("csv_data", {"blenderId": sid, "data": data}, namespace="/web")
|
||||
|
||||
@@ -192,7 +192,7 @@ def refresh_ui_data():
|
||||
|
||||
bpy.context.scene.DocProperties.should_draw_decorations = bpy.context.scene.DocProperties.should_draw_decorations
|
||||
if bpy.context.scene.WebProperties.is_connected:
|
||||
tool.Web.send_default_webui_data()
|
||||
tool.Web.send_webui_data()
|
||||
|
||||
|
||||
@persistent
|
||||
|
||||
@@ -254,7 +254,7 @@ class ExportIfcCsv(bpy.types.Operator):
|
||||
schedule_creator = scheduler.Scheduler()
|
||||
schedule_creator.schedule(self.filepath, tool.Drawing.get_path_with_ext(self.filepath, "svg"))
|
||||
if props.format == "web":
|
||||
tool.Web.send_webui_data(ifc_csv.dataframe.to_csv(index=False), event="csv_data")
|
||||
tool.Web.send_webui_data(extra_data=ifc_csv.dataframe.to_csv(index=False), event="csv_data")
|
||||
self.report({"INFO"}, f"Data is exported to {props.format.upper()}.")
|
||||
return {"FINISHED"}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ class Web(blenderbim.core.tool.Web):
|
||||
ws_thread.run_coro(cls.sio_connect(ws_url))
|
||||
cls.set_is_connected(True)
|
||||
bpy.app.timers.register(cls.check_operator_queue)
|
||||
cls.send_default_webui_data()
|
||||
cls.send_webui_data()
|
||||
|
||||
@classmethod
|
||||
def disconnect_websocket_server(cls):
|
||||
@@ -118,19 +118,18 @@ class Web(blenderbim.core.tool.Web):
|
||||
print("Websocket server terminated successfully")
|
||||
|
||||
@classmethod
|
||||
def send_default_webui_data(cls, event="default_data", namespace="/blender"):
|
||||
if not WebData.is_loaded:
|
||||
WebData.load()
|
||||
cls.send_webui_data(WebData.data, event=event, namespace=namespace)
|
||||
|
||||
@classmethod
|
||||
def send_webui_data(cls, data, event="data", namespace="/blender"):
|
||||
def send_webui_data(cls, extra_data=None, event="data", namespace="/blender", use_web_data=True):
|
||||
global ws_thread
|
||||
# TODO: find a better way to include ifc_filename with the csv data
|
||||
data = {
|
||||
"IFC_File": bpy.context.scene.BIMProperties.ifc_file,
|
||||
"data": data,
|
||||
}
|
||||
data = {}
|
||||
|
||||
if use_web_data:
|
||||
if not WebData.is_loaded:
|
||||
WebData.load()
|
||||
data = WebData.data
|
||||
|
||||
if extra_data is not None:
|
||||
data["data"] = extra_data
|
||||
|
||||
if ws_thread is not None and bpy.context.scene.WebProperties.is_connected:
|
||||
ws_thread.run_coro(cls.sio_send(data, event, namespace))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user