             var defaultValues: [String: AnyObject] = [
                 RLMObject.RISVersionProperty: 0
             ]
-            let properties = self.attributesByName.map { (attributeName, attributeDescription) -> (() -> RLMProperty) in
+            let properties = self.attributesByName.flatMap { (attributeName, attributeDescription) -> (() -> RLMProperty)? in
+                
+                guard !attributeDescription.transient else {
+                    
+                    return nil
+                }
                 
                 let rawAttribute: NSString
                 let realmPropertyType: RLMPropertyType

                    setterConverter = nil
                    
                case .TransformableAttributeType:
                    // If your attribute is of NSTransformableAttributeType, the attributeValueClassName must be set or attribute value class must implement NSCopying.
                    // TODO: implement
                    fatalError()
                    
                case .ObjectIDAttributeType: fallthrough
                case .UndefinedAttributeType:

                toBackingClass: metaClass
            )
            
            if !defaultValues.isEmpty {
                
                NSEntityDescription.addGetterBlock(
