public override IDeepCopyable CopyTo(IDeepCopyable other) { var dest = other as ProductionSpecificationComponent; if (dest != null) { base.CopyTo(dest); if (SpecType != null) { dest.SpecType = (Hl7.Fhir.Model.CodeableConcept)SpecType.DeepCopy(); } if (ComponentId != null) { dest.ComponentId = (Hl7.Fhir.Model.Identifier)ComponentId.DeepCopy(); } if (ProductionSpecElement != null) { dest.ProductionSpecElement = (Hl7.Fhir.Model.FhirString)ProductionSpecElement.DeepCopy(); } return(dest); } else { throw new ArgumentException("Can only copy to an object of the same type", "other"); } }