Insert Block Script Block Name Conflict

It is, and we are still running into this problem every day. Just came into office seeing a command not run overnight because it prompted that window at the fourth element is kind of frustrating as it does not seem that hard to provide a solution.

Hi @dks5254, @rgr,

I believe this issue is fixable, given a sample that I can use to repeat. Just want to make sure we’re fixing the right thing…

– Dale

@dale I have no doubts you can fix that. Unfortunatly I can not send you any of the files I’m working on currently. In the meantime, it would really help if you could somehow make the dialog options accessible to control from a plug-in or the like. This way we could just override it until there is a fix.

Instead of the below prompt, it would be great in there is an enum in rhinocommon, which lets us choose what to do when the methods InstanceDefinitionTable.DestroySourceArchive() or InstanceDefinitionTable.ModifySourceArchive() is used
grafik

1 Like

I am running into the same problem

I’m still waiting for someone to help me repeat this…

– Dale

Hi @dale,
I have attached 2 videos of the behaviour, and also the relevant files in which this occurs. There are 3 linked and embedded blocks in the Main_File.3dm, which are BLock_2, Block_A and Block_B. I had updated Block_A.3dm and then also updated the BLock_2.3dm afterwards. But when I open Main_File.3dm, the prompt shows up no matter in what order I update the blocks. And if at all there are 3000 different blocks just like BLock_2 in the file(which all have Block_A inside them), the prompt will show up 3000 times !!


Test.rar (258.4 KB)

Hi @Darryl_Menezes,

Thanks for the sample. I can see that from a user’s perspective the conflict feature is working as expected.

However, this is the Rhino Developer category, and there come comments about InstanceDefinitionTable and the conflict dialog appearing.

In order for me trace the path to why this dialog is appearing while running some RhinoCommon code, I need some RhinoCommon code that I can run here that repeats the problem. Does this make sense?

– Dale

Hi @dale
I have attached the sample rhino command. The dialog also appears when I run the command on the blocks Thanks

SampleEmbedCommand.txt (5.3 KB)

Dale,
Here is a setup that mirrors what I am trying to do. If you open the file “assembly” and run the included python script (after changing the file path specified in the script). You will see that it will continuously prompt the user with the dialogue box, and even though this is functioning properly, I am looking for a way to override the interruption of a pop-up somehow.Block Conflict.zip (489.2 KB)

I am curious if there was a resolution to this problem. I am having a very similar experience. I get the same check box and have to click ‘Both blocks’ and ‘Do this for all block name conflicts’ repeatedly (100’s of times). Once I am done with this task, all blocks are loaded and are correct, which leads me to think that it is unnecessary for this command to pop-up repeatedly. The option to override would be very convenient.

2 Likes

I am also suffering from this same issue. Block name conflicts interrupting automated file inserts.
Because I don’t care about preserving block information, my solution right now is to explode all block instances and delete all block definitions before each _-Insert using this function:

def explode_and_delete_all_blocks():
    blocknames = rs.BlockNames()
    for bn in blocknames:
        instances = rs.BlockInstances(bn)
        for inst in instances:
            rs.ExplodeBlockInstance(inst)
        rs.DeleteBlock(bn)
1 Like

Same problem here, please make an option to override the dialog

2 Likes

Hi @dale,
is there any update on this issue?
I am having the same problem when trying to update nested linked blocks.
I would say that it’s basically not a poblem to press a button in that dialogue, but it would be very nice to have that as an option in the inline version of the Blockmanager command.

Thanks
T.

Hi @tobias.stoltmann,

This issue was fixed in Rhino 6 and the Rhino WIP:

https://mcneel.myjetbrains.com/youtrack/issue/RH-57346

Perhaps this helps?

– Dale

Hi, @dale,
yes, that helps, but I guess there is another problem here.
When I run

-BlockManager Update All

I get the following:

grafik

Is it possible that this option has not been considered?

Thanks in advance
T.

Hi @tobias.stoltmann,

Can you provide a few 3dm files and instruction on how to repeat?

Thanks,

– Dale

Yes, @dale, of course I can.

File “ProjectBlock” contains 3 library parts (nuts, screw and washer). That would be something I’d use on a project and I’d assemble in advance. Of course you’d have to change the path to the “linked and embedded” files when you work on it, they are still referenced to my desktop.

When I update one of the “standard” parts (nuts, screw and washer) it’s not having any trouble to update it in file “ProjectBlock”.
When I use it in another file (let’s say the model of the real projec then) and one of the standard parts woudl get changed, I get the dialouge shown in my comment above. It wants to know what to do with the “new” block.

So to sum it up: The insert command displays the same dialogue when using nested blocks and an item inside the nested block gets updated.
I guess you’d just have to implement the solution for the -Insert command on this one as well, right?

I hope this is understandable and you are able to reconstruct the problem.

T.

ProjectBlock.3dm (283.1 KB)
SOF__Nuts__Metric__M8__ISO4032.3dm (123.0 KB)
SOF__Screws__Metric__M8x70__ISO4017.3dm (164.3 KB)
SOF__Washers__Metric__ST8 100 HV__ISO7091.3dm (44.0 KB)
FileUsed.3dm (262.0 KB)

Thanks @tobias.stoltmann. I am able to reproduce this and I have logged the issue.

https://mcneel.myjetbrains.com/youtrack/issue/RH-59783

– Dale

Thanks @dale.
Would it be possible to solve somehow without scripting, e.g. with RhinoCommon?