private void CopyInstances(XbimModel newmodel, XbimModel model)
        {
            newmodel.AutoAddOwnerHistory = false;
            using (XbimReadWriteTransaction txn = newmodel.BeginTransaction("CopyInstances"))
            {
                PropertyTranformDelegate propTransform = delegate (IfcMetaProperty prop, object toCopy)
                {
                    var value = prop.PropertyInfo.GetValue(toCopy, null);
                    return value;
                };

                var copied = new XbimInstanceHandleMap(model, newmodel);

                foreach (var ent in model.Instances)
                {
                    newmodel.InsertCopy(ent, copied, txn, propTransform);
                }

                if (model.Validate(txn.Modified(), Console.Out) == 0)
                {
                    txn.Commit();
                }
            }
        }
        private void CopyInstance(XbimModel newmodel, XbimModel model, IPersistIfcEntity ent)
        {
            newmodel.AutoAddOwnerHistory = false;
            using (XbimReadWriteTransaction txn = newmodel.BeginTransaction("CopyInstance"))
            {
                PropertyTranformDelegate propTransform = delegate (IfcMetaProperty prop, object toCopy)
                {
                    var value = prop.PropertyInfo.GetValue(toCopy, null);
                    return value;
                };

                var copied = new XbimInstanceHandleMap(model, newmodel);

                try
                {
                    newmodel.InsertCopy(ent, copied, txn, propTransform);
                }
                catch(Exception ex)
                {
                    AddMessages(" " + ex.Message);
                    Debug.WriteLine(" " + ex.Message);
                }

                if (model.Validate(txn.Modified(), Console.Out) == 0)
                {
                    txn.Commit();
                }
            }
        }