teocomi / BCFier

Extensible BCF client and tools
http://bcfier.com/
GNU General Public License v3.0
120 stars 73 forks source link

ElementId as AuthoringToolId may be unstable in Worksharing context #57

Open cwaluga opened 5 years ago

cwaluga commented 5 years ago

ElementIds may be rearranged in worksharing synchronization due to conflicting Ids. This happens quite often. See also: https://thebuildingcoder.typepad.com/blog/2015/02/understanding-the-use-of-the-uniqueid.html

Since Bcfier has no (obvious) way to update ElementIds from IfcGuids (which would require a loop over all elements), this might break some issues in a worksharing context.

Is it possible to make Bcfier write UniqueIds into the AuthoringToolId? To make sure nothing breaks on the way back, one can first check for ElementId, then for UniqueId.

teocomi commented 5 years ago

Hi @cwaluga I'm not actively maintaining the project, but if you need such a change I can have a look. Would you need BCFier to just write out UniqueIds in the AuthoringToolId field?

cwaluga commented 5 years ago

Hi @teocomi. Thanks for your answer. I can do this small change myself, so no need for you to take action. I posted this here in case that someone in the future finds the time to continue this project. It is a really small change which can make component handling more stable. In case element IDs are reordered, the only chance you have to recover the authoring ids is to loop over all elements and compare IfcGuids, which is - to my knowledge - also currently not possible in BCFier.

teocomi commented 5 years ago

Sounds good to me! BCFier already does some looping over IFCguids, but not for what you ask, if I'm correct: https://github.com/teocomi/BCFier/blob/05866ed80ce1bdb54bbf70d6d0c0064eebc7e654/Bcfier.Revit/Entry/ExtEvntOpenView.cs#L202